Что-то явно не так у вас с движком для графиков. Почему он так безбожно тормозит? И в Studio, и в API, и наверное везде. Когда открываешь вкладку с графиком проходит пару секунд прежде чем он откроется. Перетаскивать график мышью очень противно - запаздывает, тормозит и грузит проц. Вот если через Overview скроллить, то нормально.
Всё это происходит на обычных исторических данных. Загружал 4-часовые свечки по Si с 2009 года, т.е. данных не много там. Никаких CandleManager не использовал. Просто создал свечки сам и отрисовал их. Работаю на десктопе с нормальным железом.
Это SciChart такой тормозной или он так плохо приготовлен? Или может быть я неправильно что делаю... но тогда почему Studio работает точно также...
Kommentare (13)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Такое ощущение, что весь интерфейс тормозной у S#. Во всех продуктах. Может из-за каких-то библиотек. Не знаю вобщем 😌
Может драйвера. Интерфейс на WPF от .NET 4.0 Сравнительно свежая технология. Старые ОС или компьютеры могут не иметь обновления.
я когда только начал разбираться, вообще несколько дней думал он у меня не отрисовывается из-за того, что я видел пустой фон диаграммы и закрывал форму, только потом понял, что нужно подождать некоторое время что бы он начал рисовать свечки! а теперь привык, даже прикольно, как будто фильм смотришь, видишь куда в таймфрейме ходили свечки, в каком месте свечи было больше сделок ))
Не путайте процесс передачи данных и скроллинг. Автор, если не врет, заявляет о торможении всех компонентов. В том числе и тех, которые к графику и свечам не имеют отношения. Такое может быть только в случае или морально устаревшего железа или отсутствия драйверов.
Попробуй вызывать Draw не для каждой отдельной свечи, а передать в него все свечи сразу, одной коллекцией. Была подобная проблема, решил именно таким образом, теперь рисует быстро.
Валентин, а Вы не могли бы пояснить, а лучше кинуть примерчик ) как Вы в Draw передаете не одну, а все свечи сразу? спасибо!
Дело не в том, есть у вас претензии или нет. А в том, что вы в одном топике мешаете разные темы. И путаете потеницально тех, кто будет читать спустя какое то время.
Не надо писать в топики по принципу ключевых слов.
Отправляем каждую свечку для прорисовки по отдельности:
Отправляем все свечки на прорисовку разом:
Второй вариант работает гораздо быстрее.
foreach (var candle in candles) { chart.Draw(candleElement, candle); }
Спасибо, с первым кодом все понятно, но второй... это для меня слишком круто, ух, буду разбираться )) но все равно спасибо еще раз!
Тоже столкнулся, на исторических данных свечка с индюком могла рисоваться секунду. Профайлер показал множественные затыки на Monitor.Enter внутри стокшарпа. Решил переделкой на async void:
Было:
Стало:
Стало рисовать сильно быстрее и равномерно.
P.S.
Или так, ещё шустрее.
P.P.S А, нет, всё-равно тормозит иногда (и начинает жрать память при этом (1.5гб на минутный график за 5 дней, и это не _candlesQueue), причём непонятно от чего зависит - иногда пролетает мгновенно, иногда нет... На Draw(IEnumerable<RefPair) тоже переделывал, разницы нет.
А память течёт из-за WPF Xceed компонентов кажется...
Кто-нибудь сталкивался?
http://s020.radikal.ru/i719/1605/e4/83932c189c41.png http://s017.radikal.ru/i400/1605/03/11f5d742b0e8.png
На 1.5гб вывалилось по оутофмемори в конце концов (несколько сотен свечей максимум), хотя обычно за 200-250мб на любом количестве свечей не вылезает и рисует нормально.
В одной программе PropertyGrid от WPF Xceed бесплатого, очень сильно память поджирали. Правда давно это было.
Поставил дополнительных задержек для хорошего наполнения очереди, намертво прибил х86 - вроде прошло.