Что-то явно не так у вас с движком для графиков. Почему он так безбожно тормозит? И в Studio, и в API, и наверное везде. Когда открываешь вкладку с графиком проходит пару секунд прежде чем он откроется. Перетаскивать график мышью очень противно - запаздывает, тормозит и грузит проц. Вот если через Overview скроллить, то нормально.
Всё это происходит на обычных исторических данных. Загружал 4-часовые свечки по Si с 2009 года, т.е. данных не много там. Никаких CandleManager не использовал. Просто создал свечки сам и отрисовал их. Работаю на десктопе с нормальным железом.
Это SciChart такой тормозной или он так плохо приготовлен? Или может быть я неправильно что делаю... но тогда почему Studio работает точно также...
コメント (13)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Такое ощущение, что весь интерфейс тормозной у 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 - вроде прошло.