API 4.2.4.0. Скорость чтения стаканов из хранилища

API 4.2.4.0. Скорость чтения стаканов из хранилища
Atom
7/12/2014


Скорость загрузки стаканов из хранилища стала существенно медленнее на новой версии.

4.2.3.13: Время на исполнение: 00:00:01.0192103
4.2.4.0 : Время на исполнение: 00:00:32.7287738
Code
using StockSharp.Algo.Storages;
using StockSharp.BusinessEntities;
using System;
using System.IO;
 
class Program
{
    static void Main(string[] args)
    {
        var storageRegistry = new StorageRegistry();
        var defaultDrive = (LocalMarketDataDrive)storageRegistry.DefaultDrive;
        defaultDrive.Path = Path.GetFullPath(@"D:\AlgoTrading\MarketData\Storage\PlazaForts");
        var security = new Security() { Id = "RIU4@FORTS" };
        var marketDepthStorage = storageRegistry.GetMarketDepthStorage(security, defaultDrive);
        var date = new DateTime(2014, 07, 9);
        var start = DateTime.Now;
        foreach (var depth in marketDepthStorage.Load(date)) { }
        Console.WriteLine("Время на исполнение: {0}", DateTime.Now - start);
    }
}

Итого медленнее в 32 раза.

Tags:


Thanks:


vk37

Avatar
Date: 7/14/2014
Reply


Версия 4.2.6. Стаканы стали читаться быстрее, но медленнее чем на 4.2.3.13 примерно в 3-4 раза. Тестировал так:
Code
namespace StorageLoadDemo
{
    using StockSharp.Algo.Storages;
    using StockSharp.BusinessEntities;
    using System;
    using System.Collections.Generic;
    using System.IO;

    class Program
    {
        static void Main(string[] args)
        {
            var storageRegistry = new StorageRegistry();
            var defaultDrive = (LocalMarketDataDrive)storageRegistry.DefaultDrive;
            defaultDrive.Path = Path.GetFullPath(@"D:\AlgoTrading\MarketData\Storage\PlazaForts");
            var date = new DateTime(2014, 7, 1);
            var start = DateTime.Now;
            var log = new List<string>();

            while (true)
            {
                var security = new Security() { Id = "RIU4@FORTS" };
                var storage = storageRegistry.GetQuoteMessageStorage(security, defaultDrive);
                var loadStart = DateTime.Now;
                foreach (var item in storage.Load(date)) { }
                var logLine = string.Format("{0:d} - {1:0.0} ms", date, (DateTime.Now - loadStart).TotalMilliseconds);
                Console.WriteLine(logLine);
                log.Add(logLine);

                date = date.AddDays(1);

                if (date > DateTime.Today)
                    break;
            }

            var summary = string.Format("Время на исполнение: {0}", DateTime.Now - start);
            Console.WriteLine(summary);
            log.Add(summary);
            File.WriteAllLines("Log.txt", log);
        }
    }
}

4.2.3.13: Время на исполнение: 00:00:06.3452430
4.2.6.0 : Время на исполнение: 00:00:21.9514286
Thanks:

Mikhail Sukhov

Avatar
Date: 7/14/2014
Reply


vk37 Go to
Версия 4.2.6. Стаканы стали читаться быстрее, но медленнее чем на 4.2.3.13 примерно в 3-4 раза.


Странно, что вообще что-то изменилось.[biggrin]

Я забыл отписаться. Ускорение возможно только на новой версии файла. Тоесть старые стакану нужно перегнать в новый формат стандартными API способом.
Thanks:

vk37

Avatar
Date: 7/14/2014
Reply


Михаил Сухов Go to
vk37 Go to
Версия 4.2.6. Стаканы стали читаться быстрее, но медленнее чем на 4.2.3.13 примерно в 3-4 раза.


Странно, что вообще что-то изменилось.[biggrin]

Я забыл отписаться. Ускорение возможно только на новой версии файла. Тоесть старые стакану нужно перегнать в новый формат стандартными API способом.
Пришел к выводу, что понимания как работать с текущим вариантом API хранилища у меня нет.

Thanks:

Mikhail Sukhov

Avatar
Date: 7/14/2014
Reply


vk37 Go to
Пришел к выводу, что понимания как работать с текущим вариантом API хранилища у меня нет.


Как написано в документации. Ничего не изменилось.
Thanks:

vk37

Avatar
Date: 7/15/2014
Reply


Михаил Сухов Go to
vk37 Go to
Пришел к выводу, что понимания как работать с текущим вариантом API хранилища у меня нет.


Как написано в документации. Ничего не изменилось.


Для конвертации использовать QuoteMessageStorage или MarketDepthStorage?
Thanks:

Mikhail Sukhov

Avatar
Date: 7/15/2014
Reply


vk37 Go to
Михаил Сухов Go to
vk37 Go to
Пришел к выводу, что понимания как работать с текущим вариантом API хранилища у меня нет.


Как написано в документации. Ничего не изменилось.


Для конвертации использовать QuoteMessageStorage или MarketDepthStorage?


Без разницы. Влият только на скорость операций. Message быстрее, чем бизнес-объект. А формат один.
Thanks:

vk37

Avatar
Date: 7/15/2014
Reply


Михаил Сухов Go to
Без разницы. Влият только на скорость операций. Message быстрее, чем бизнес-объект. А формат один.
У меня QuoteMessageStorage и MarketDepthStorage возвращают различное количество стаканов при загрузке на версии 4.2.6. Наверное нужно решить эту проблему перед конвертацией стаканов хранилища.

Thanks:

Mikhail Sukhov

Avatar
Date: 7/15/2014
Reply


vk37 Go to
Михаил Сухов Go to
Без разницы. Влият только на скорость операций. Message быстрее, чем бизнес-объект. А формат один.
У меня QuoteMessageStorage и MarketDepthStorage возвращают различное количество стаканов при загрузке на версии 4.2.6. Наверное нужно решить эту проблему перед конвертацией стаканов хранилища.



More
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy