← Zurück

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

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (8)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

vk37
vk37 Autor

Версия 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
Mikhail Sukhov

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

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

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

vk37
vk37 Autor

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

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

vk37
vk37 Autor

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

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

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

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

Mikhail Sukhov
Mikhail Sukhov

vk37:

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

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

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

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

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

vk37
vk37 Autor

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

Mikhail Sukhov
Mikhail Sukhov

vk37:

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

More