Mikhail Sukhov
|
Дата: 11.07.2014
vk37 Стала медленнее примерно в 6 раз. Код сравнения.
|
|
Спасибо:
|
|
|
|
|
vk37
|
Дата: 11.07.2014
Михаил Сухов Код сравнения. Специально код для тестирования не составлял. Та часть кода в моем проекте, которая обращается за данными к хранилищу стала работать на 4.2.4.0 медленнее примерно в 10 раз по сравнению с версией 4.2.3.13. Если в своем проекте меняю ссылки на сборки S# обратно на 4.2.3.13, то снова все работает быстро. Проверил отдельно тот код, что обращается к хранилищу изменений инструментов. Он у меня стал медленнее примерно в 6 раз. Изменилась ли скорость при обращении к данным по сделкам и стаканам не проверял.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 11.07.2014
vk37 Специально код для тестирования не составлял.
Жду
|
|
Спасибо:
|
|
|
|
|
devruss
|
Дата: 11.07.2014
vk37 Стала медленнее примерно в 6 раз. медленнее, это еще ладно. Я помню, когда сравнивал раличные версии у меня результаты бэктестинга менялись в зависимости от версии сборки (незначительно, но отличались... где-то была моя тема по этому поводу)
|
|
Спасибо:
|
|
|
|
|
vk37
|
Дата: 11.07.2014
|
|
|
|
Михаил Сухов vk37 Специально код для тестирования не составлял.
Жду Стаканы из хранилища не поднимаются вообще: System.OutOfMemoryException. Маркет данные прилагаю к посту. Код
at System.Collections.Generic.Dictionary`2.Resize(Int32 newSize, Boolean forceNewHashCodes)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
at System.Linq.Enumerable.ToDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at StockSharp.Algo.TraderHelper.AddDelta(IEnumerable`1 fromQuotes, IEnumerable`1 deltaQuotes, Boolean isBids)
at StockSharp.Algo.TraderHelper.AddDelta(QuoteChangeMessage from, QuoteChangeMessage delta)
at #=qg_pNPqyCfZ23Tsz5texp8IXAe20oTShauQEzqbSZdOLMzskfDFEjN5YOe1TAca2E.#=qTfrirbxZYSVL1_aNwCbGng==(#=qS9YsZNAzZplF7inzo2AHNQIY6nN53R0u8selb3ok2zM= #=qbAvmi_8MHDD719jHz0_5Ag==)
at #=q7E10EcbcImBPppdVAfcBTQvXlTgE5vwOEWPu1BUQ3zrBWNFtZaSgoDx1pVa8BkOxnkHykysoo4EjbPJoTm7TGQ==.#=qS9YsZNAzZplF7inzo2AHNQIY6nN53R0u8selb3ok2zM=.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at StorageLoadDemo.Program.Main(String[] args) in d:\1\StorageLoadDemo\Program.cs:line 20
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Код
using System.Linq;
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, 7, 10);
var start = DateTime.Now;
marketDepthStorage.Load(date).ToArray();
Console.WriteLine("Время на исполнение: {0}", DateTime.Now - start);
}
}
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 11.07.2014
vk37 Стаканы из хранилища не поднимаются вообще: System.OutOfMemoryException Код написан криво. Пишите нормально - ошибок не будет.
|
|
Спасибо:
|
|
|
|
|
vk37
|
Дата: 11.07.2014
Михаил Сухов vk37 Стаканы из хранилища не поднимаются вообще: System.OutOfMemoryException Код написан криво. Пишите нормально - ошибок не будет. Очень информативно.
|
|
Спасибо:
|
|
|
|
|
vk37
|
Дата: 11.07.2014
|
|
|
|
Потеря в скорости идет при подгрузке стаканов. Код
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 securityChangeStorage = storageRegistry.GetSecurityChangeStorage(security, defaultDrive);
var tradeStorage = storageRegistry.GetTradeStorage(security, defaultDrive);
var marketDepthStorage = storageRegistry.GetMarketDepthStorage(security, defaultDrive);
var date = new DateTime(2014, 07, 9);
var start = DateTime.Now;
foreach (var sc in securityChangeStorage.Load(date)) { }
foreach (var trade in tradeStorage.Load(date)) { }
foreach (var depth in marketDepthStorage.Load(date)) { }
Console.WriteLine("Время на исполнение: {0}", DateTime.Now - start);
}
}
4.2.3.13: Время на исполнение: 00:00:01.0192103 4.2.4.0 : Время на исполнение: 00:00:32.7287738 Итого медленнее в 32 раза.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 11.07.2014
vk37 Михаил Сухов vk37 Стаканы из хранилища не поднимаются вообще: System.OutOfMemoryException Код написан криво. Пишите нормально - ошибок не будет. Очень информативно. ToArray - смысл понятен этой функции?
|
|
Спасибо:
|
|
|
|
|
vk37
|
Дата: 11.07.2014
Михаил Сухов ToArray - смысл понятен этой функции? Смысл понятен. На версии 4.2.3.13 этот код работает без проблем: Код
marketDepthStorage.Load(date).ToArray();
|
|
Спасибо:
|
|
|
|