Тормоза~/topic/5112/tormoza/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T15:32:41Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/34826/Поставил дополнительных задержек для хорошего наполнения очереди, намертво прибил х86 - вроде прошло...2016-05-30T13:11:12Z2016-05-30T13:11:12Zagat50https://stocksharp.ru/users/28063/info@stocksharp.ruПоставил дополнительных задержек для хорошего наполнения очереди, намертво прибил х86 - вроде прошло.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/34814/А память течёт из-за WPF Xceed компонентов кажется... Кто-нибудь сталкивался? http://s020.radikal.ru...2016-05-27T12:06:12Z2016-05-27T12:06:12ZИван З.https://stocksharp.ru/users/6502/info@stocksharp.ru<div class="quote"><span class="quotetitle">agat50 <a href="https://stocksharp.ru/posts/m/34811/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А память течёт из-за WPF Xceed компонентов кажется...<br /><br />Кто-нибудь сталкивался? <br /><br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADn575ArnpEi-pxlfr_fY5h9WRv2j-HN0ybppRYQIuLuE7j9l1mTw9-0EqYnQRY1A8Kb2qg4PiMqIhZLeJAaziQ" title="http://s020.radikal.ru/i719/1605/e4/83932c189c41.png
">http://s020.radikal.ru/i...605/e4/83932c189c41.png
</a><br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADAMrhfFuW6McCOW1HAlL-axvcxGyvOY6gwVUWREO9wY05f1eNy8z8sJQxqACiYLPVvKLpWSoc2s-CQFrGQNSQM" title="http://s017.radikal.ru/i400/1605/03/11f5d742b0e8.png
">http://s017.radikal.ru/i...605/03/11f5d742b0e8.png
</a><br /><br />На 1.5гб вывалилось по оутофмемори в конце концов (несколько сотен свечей максимум), хотя обычно за 200-250мб на любом количестве свечей не вылезает и рисует нормально.</div></div><br /><br />В одной программе PropertyGrid от WPF Xceed бесплатого, очень сильно память поджирали. Правда давно это было.<br /><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/34811/А память течёт из-за WPF Xceed компонентов кажется... Кто-нибудь сталкивался? http://s020.radikal.ru...2016-05-26T16:27:58Z2016-05-26T16:56:29Zagat50https://stocksharp.ru/users/28063/info@stocksharp.ruА память течёт из-за WPF Xceed компонентов кажется...<br /><br />Кто-нибудь сталкивался? <br /><br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADn575ArnpEi-pxlfr_fY5h9WRv2j-HN0ybppRYQIuLuE7j9l1mTw9-0EqYnQRY1A8Kb2qg4PiMqIhZLeJAaziQ" title="http://s020.radikal.ru/i719/1605/e4/83932c189c41.png
">http://s020.radikal.ru/i...605/e4/83932c189c41.png
</a><br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADAMrhfFuW6McCOW1HAlL-axvcxGyvOY6gwVUWREO9wY05f1eNy8z8sJQxqACiYLPVvKLpWSoc2s-CQFrGQNSQM" title="http://s017.radikal.ru/i400/1605/03/11f5d742b0e8.png
">http://s017.radikal.ru/i...605/03/11f5d742b0e8.png
</a><br /><br />На 1.5гб вывалилось по оутофмемори в конце концов (несколько сотен свечей максимум), хотя обычно за 200-250мб на любом количестве свечей не вылезает и рисует нормально.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/34808/Тоже столкнулся, на исторических данных свечка с индюком могла рисоваться секунду. Профайлер показал...2016-05-26T09:56:55Z2016-05-26T15:19:33Zagat50https://stocksharp.ru/users/28063/info@stocksharp.ruТоже столкнулся, на исторических данных свечка с индюком могла рисоваться секунду. Профайлер показал множественные затыки на Monitor.Enter внутри стокшарпа. Решил переделкой на async void:<br /><br />Было:<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />_candleManager = new CandleManager(_smartTrader);<br />_candleManager.Processing += CandleManagerOnProcessing;<br /><br />private void CandleManagerOnProcessing(CandleSeries candleSeries, Candle candle)<br />{<br />//...<br />}<br /></div></div><br /><br />Стало:<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />_candleManager = new CandleManager(_smartTrader);<br />_candleManager.Processing += CandleManagerOnProcessing;<br />private readonly SemaphoreSlim _candleManagerOnProcessingSyncRoot<br /> = new SemaphoreSlim(1);<br />private async void CandleManagerOnProcessing(CandleSeries candleSeries, Candle candle)<br />{<br />await _candleManagerOnProcessingSyncRoot.WaitAsync();<br />try<br />{<br />//...<br />}<br />catch (Exception e)<br />{<br />_logManager.Application.AddErrorLog(e);<br />}<br />finally<br />{<br />_candleManagerOnProcessingSyncRoot.Release();<br />}<br />}<br /></div></div><br /><br />Стало рисовать сильно быстрее и равномерно.<br /><br />P.S.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />private readonly SemaphoreSlim _candleManagerOnProcessingSyncRoot<br /> = new SemaphoreSlim(1);<br />private readonly ConcurrentQueue<Tuple<CandleSeries, Candle>> _candlesQueue <br /> = new ConcurrentQueue<Tuple<CandleSeries, Candle>>();<br /><br />private void CandleManagerOnProcessing(CandleSeries candleSeries, Candle candle)<br />{<br /> _candlesQueue.Enqueue(Tuple.Create(candleSeries, candle));<br /> ProcessCandleQueue();<br />}<br /><br />private async void ProcessCandleQueue()<br />{<br /> await _candleManagerOnProcessingSyncRoot.WaitAsync();<br /> try<br /> {<br /> Tuple<CandleSeries, Candle> n;<br /> while (_candlesQueue.TryDequeue(out n))<br /> {<br /> var candleSeries = n.Item1;<br /> var candle = n.Item2;<br /><br /></div></div><br /><br />Или так, ещё шустрее.<br /><br />P.P.S А, нет, всё-равно тормозит иногда (и начинает жрать память при этом (1.5гб на минутный график за 5 дней, и это не _candlesQueue), причём непонятно от чего зависит - иногда пролетает мгновенно, иногда нет... На Draw(IEnumerable<RefPair) тоже переделывал, разницы нет.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33949/Отправляем каждую свечку для прорисовки по отдельности: foreach (var candle in candles) { chart.Draw...2015-11-03T22:44:30Z2015-11-03T22:44:30ZVitaly48https://stocksharp.ru/users/94511/info@stocksharp.ru<div class="quote"><span class="quotetitle">Валентин Лебедев <a href="https://stocksharp.ru/posts/m/33948/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Отправляем каждую свечку для прорисовки по отдельности:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
foreach (var candle in candles)
{
chart.Draw(candleElement, candle);
}</pre>
</div></div><br />Отправляем все свечки на прорисовку разом:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
chart.Draw(
candles.Select(
candle =>
new RefPair<DateTimeOffset, IDictionary<IChartElement, object>>(candle.OpenTime,
new Dictionary<IChartElement, object> {{candleElement, candle}})));</pre>
</div></div><br />Второй вариант работает гораздо быстрее.</div></div><br /><br />Спасибо, с первым кодом все понятно, но второй... это для меня слишком круто, ух, буду разбираться ))<br />но все равно спасибо еще раз!<br /><br /><br />> Mikhail Sukhov<br />Да, я понял, сори за офтоп, такое больше не повториться!Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33948/Отправляем каждую свечку для прорисовки по отдельности: foreach (var candle in candles) { chart.Draw...2015-11-03T13:01:55Z2015-11-03T13:01:55ZВалентин Лебедевhttps://stocksharp.ru/users/50045/info@stocksharp.ruОтправляем каждую свечку для прорисовки по отдельности:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
foreach (var candle in candles)
{
chart.Draw(candleElement, candle);
}</pre>
</div></div><br />Отправляем все свечки на прорисовку разом:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
chart.Draw(
candles.Select(
candle =>
new RefPair<DateTimeOffset, IDictionary<IChartElement, object>>(candle.OpenTime,
new Dictionary<IChartElement, object> {{candleElement, candle}})));</pre>
</div></div><br />Второй вариант работает гораздо быстрее.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33947/Михаил, к компонентам претензий ни каких нет, все работает четко Дело не в том, есть у вас претензии...2015-11-03T12:29:59Z2015-11-03T12:29:59ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">Vitaly48 <a href="https://stocksharp.ru/posts/m/33945/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Михаил, к компонентам претензий ни каких нет, все работает четко</div></div><br /><br />Дело не в том, есть у вас претензии или нет. А в том, что вы в одном топике мешаете разные темы. И путаете потеницально тех, кто будет читать спустя какое то время.<br /><br />Не надо писать в топики по принципу ключевых слов.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33945/Попробуй вызывать Draw не для каждой отдельной свечи, а передать в него все свечи сразу, одной колле...2015-11-03T11:46:19Z2015-11-03T11:46:19ZVitaly48https://stocksharp.ru/users/94511/info@stocksharp.ru<div class="quote"><span class="quotetitle">Валентин Лебедев <a href="https://stocksharp.ru/posts/m/33941/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Попробуй вызывать Draw не для каждой отдельной свечи, а передать в него все свечи сразу, одной коллекцией. Была подобная проблема, решил именно таким образом, теперь рисует быстро.</div></div><br /><br />Валентин, а Вы не могли бы пояснить, а лучше кинуть примерчик ) как Вы в Draw передаете не одну, а все свечи сразу?<br />спасибо!<br /><br />>Mikhail Sukhov<br />Михаил, к компонентам претензий ни каких нет, все работает четко, за месяц знакомств с ними не было ни каких глюков или крашей, тьфу-тьфу-тьфу ) все работает как часы, немного напрягают моменты в плане избыточной накрученности, мне бы лично хватило бы и десятой части, если не сотой, того функционала, что представлен в этой библиотеке!Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33943/я когда только начал разбираться, вообще несколько дней думал он у меня не отрисовывается из-за того...2015-11-02T21:46:42Z2015-11-02T21:47:36ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">Vitaly48 <a href="https://stocksharp.ru/posts/m/33940/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">я когда только начал разбираться, вообще несколько дней думал он у меня не отрисовывается из-за того, что я видел пустой фон диаграммы и закрывал форму, только потом понял, что нужно подождать некоторое время что бы он начал рисовать свечки!<br />а теперь привык, даже прикольно, как будто фильм смотришь, видишь куда в таймфрейме ходили свечки, в каком месте свечи было больше сделок ))</div></div><br /><br />Не путайте процесс передачи данных и скроллинг. Автор, если не врет, заявляет о торможении всех компонентов. В том числе и тех, которые к графику и свечам не имеют отношения. Такое может быть только в случае или морально устаревшего железа или отсутствия драйверов.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33941/Попробуй вызывать Draw не для каждой отдельной свечи, а передать в него все свечи сразу, одной колле...2015-11-02T20:00:54Z2015-11-02T20:00:54ZВалентин Лебедевhttps://stocksharp.ru/users/50045/info@stocksharp.ruПопробуй вызывать Draw не для каждой отдельной свечи, а передать в него все свечи сразу, одной коллекцией. Была подобная проблема, решил именно таким образом, теперь рисует быстро.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33940/я когда только начал разбираться, вообще несколько дней думал он у меня не отрисовывается из-за того...2015-11-02T19:08:50Z2015-11-02T19:08:50ZVitaly48https://stocksharp.ru/users/94511/info@stocksharp.ruя когда только начал разбираться, вообще несколько дней думал он у меня не отрисовывается из-за того, что я видел пустой фон диаграммы и закрывал форму, только потом понял, что нужно подождать некоторое время что бы он начал рисовать свечки!<br />а теперь привык, даже прикольно, как будто фильм смотришь, видишь куда в таймфрейме ходили свечки, в каком месте свечи было больше сделок ))Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33935/Такое ощущение, что весь интерфейс тормозной у S#. Во всех продуктах. Может из-за каких-то библиотек...2015-10-31T12:02:53Z2015-10-31T12:02:53ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">eugene20237 <a href="https://stocksharp.ru/posts/m/33930/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Такое ощущение, что весь интерфейс тормозной у S#. Во всех продуктах. Может из-за каких-то библиотек. Не знаю вобщем [mellow] </div></div><br /><br />Может драйвера. Интерфейс на WPF от .NET 4.0 Сравнительно свежая технология. Старые ОС или компьютеры могут не иметь обновления.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33930/Такое ощущение, что весь интерфейс тормозной у S#. Во всех продуктах. Может из-за каких-то библиотек...2015-10-29T16:10:41Z2015-10-29T16:10:41Zeugene20237https://stocksharp.ru/users/62106/info@stocksharp.ruТакое ощущение, что весь интерфейс тормозной у S#. Во всех продуктах. Может из-за каких-то библиотек. Не знаю вобщем [mellow] Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/33923/Что-то явно не так у вас с движком для графиков. Почему он так безбожно тормозит? И в Studio, и в AP...2015-10-28T22:27:34Z2015-10-28T22:27:54Zeugene20237https://stocksharp.ru/users/62106/info@stocksharp.ruЧто-то явно не так у вас с движком для графиков. Почему он так безбожно тормозит? И в Studio, и в API, и наверное везде. Когда открываешь вкладку с графиком проходит пару секунд прежде чем он откроется. Перетаскивать график мышью очень противно - запаздывает, тормозит и грузит проц. Вот если через Overview скроллить, то нормально.<br /><br />Всё это происходит на обычных исторических данных. Загружал 4-часовые свечки по Si с 2009 года, т.е. данных не много там. Никаких CandleManager не использовал. Просто создал свечки сам и отрисовал их. Работаю на десктопе с нормальным железом.<br /><br />Это SciChart такой тормозной или он так плохо приготовлен? Или может быть я неправильно что делаю... но тогда почему Studio работает точно также...Copyright @ StockSharp Platform LLC 2010 - 2024