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

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


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

4.2.3.13: Время на исполнение: 00:00:01.0192103 4.2.4.0 : Время на исполнение: 00:00:32.7287738

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 раза.


Теги:


Спасибо:


vk37

Фотография
Дата: 14.07.2014
Ответить


Версия 4.2.6. Стаканы стали читаться быстрее, но медленнее чем на 4.2.3.13 примерно в 3-4 раза. Тестировал так: ```csharp 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
Спасибо:

Mikhail Sukhov

Фотография
Дата: 14.07.2014
Ответить


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

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

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

Спасибо:

vk37

Фотография
Дата: 14.07.2014
Ответить


Михаил Сухов:

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

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

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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 14.07.2014
Ответить


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

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

Спасибо:

vk37

Фотография
Дата: 15.07.2014
Ответить


Михаил Сухов:

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

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

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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 15.07.2014
Ответить


vk37:

Михаил Сухов:

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

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

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

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

Спасибо:

vk37

Фотография
Дата: 15.07.2014
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 15.07.2014
Ответить


vk37:

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

More

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy