Управление плотностью Silverlight высокой плотности - PullRequest
10 голосов
/ 09 апреля 2010

Я искал элементы управления диаграммами Silverlight для отображения большого количества выборок (~ 10000 точек данных в пяти отдельных сериях - всего ~ 50 тысяч точек).

Я считаю, что существующие опции, разработанные Dundas, Visifire, Microsoft и т. Д., Крайне плохо работают при отображении более нескольких сотен точек данных.

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

Прежде чем я упаду слишком далеко в кроличью нору для переосмысления колеса - кто-нибудь нашел сторонний или OSS контроль, который будет управлять большим количеством точек данных на спарклайне ?

Ответы [ 8 ]

7 голосов
/ 10 января 2011

Ознакомьтесь с графиками Visiblox (http://www.visiblox.com/). Сейчас я работаю над приложением телеметрии, которое использует три из своих диаграмм в одном и том же компоненте Silverlight, и в общей сложности строит около 36 000 точек, и с точки зрения производительности наблюдается очень небольшое замедление, если оно вообще есть.

У них есть пример высокой производительности на их сайте здесь - http://www.visiblox.com/examples/LargeDataSets. Я решил использовать Visiblox после того, как заглянул в следующий пост в блоге:

Новое сравнение производительности: http://www.visifire.com/blog/2011/12/02/fast-silverlight-charts/

Старое сравнение производительности: http://www.scottlogic.co.uk/blog/colin/2010/12/visiblox-visifire-dynamicdatadisplay-charting-performance-comparison/

Мой пример телеметрии теперь является частью статьи CodeProject , которую я создал, если вы хотите взглянуть!

3 голосов
/ 16 сентября 2011

Основываясь на приведенных здесь рекомендациях, я только что попробовал Visiblox и Infragistics.

Visiblox имеет хороший опыт разработчиков, чистые API-интерфейсы, без раздувания.В то время как производительность для нескольких тысяч точек данных в порядке, производительность снижается, когда вы входите в диапазон 100 КБ.Вот образец Visiblox с несколькими тысячами точек (вы можете скачать образец и просто настроить количество точек данных).

Теперь, общий аргумент заключается в том, что вам не следует связывать так многов любом случае данные на график, но следует заранее их обрезать.Я согласен с этим, но в идеале мне нужен элемент управления графиком, который позаботится об этом для меня.Получение Zooming, Panning и все такое право - нетривиальные задачи, и я был бы рад выложить несколько 100 $, чтобы получить эту функциональность.Это простой экономический здравый смысл - не изобретать велосипед здесь.

Инфраструктура , безусловно, это правильно.Я могу связать миллион точек и получить плавную работу.Вот пример Infragistics .

Однако Infragistics устанавливает много мусора (локальное веб-приложение IIS с примерами, которые вы также можете увидеть в Интернете), а также (превосходные) примеры и коддокументация высокого уровня, я пропускаю некоторые общие сведения о каждом компоненте и его отдельных модулях.

Поскольку многие пользователи SO рекомендуют Telerik элементы управления для своих чистых API, документации и разработчикаПоддержка, я также взглянул на их контроль диаграммы.Тем не менее, я должен признать, что нахожу это довольно медленным (масштабирование занимает примерно 500-1000 мс, что слишком долго, чтобы чувствовать себя плавно).Вот образец Telerik .

2 голосов
/ 06 декабря 2011

Visifire - самый быстрый график сейчас.Проверьте ссылку на блог ниже.http://www.visifire.com/blog/2011/12/02/fast-silverlight-charts/

На графике показано, что Visifire в 3–4 раза быстрее, чем Visiblox ..!

enter image description here

1 голос
/ 11 августа 2010

Infragistics утверждает, что может обрабатывать огромные объемы данных в недавно выпущенном xamDataChart.

http://www.infragistics.com/dotnet/netadvantage/silverlight/data-visualization/xam-web-data-chart.aspx#Overview

1 голос
/ 09 апреля 2010

Я не знаю ни одного OSS или сторонних элементов управления, которые будут делать то, что вам нужно.

В одном случае, когда мне потребовалось более 100 тысяч точек данных, мы сделали это простым. Самым большим убийцей перфектов было количество элементов в каждой точке данных. При сохранении элемента простой эллипс со статической кистью заполнял приложение довольно быстро.

1 голос
/ 09 апреля 2010

Прежде чем вы начнете играть с WritableBitmap самостоятельно, взгляните на WriteableBitmapEx от Рене Шульте, он пишет об этом здесь . Потрясающие вещи.

0 голосов
/ 29 декабря 2011

Я думаю, что образец Telerik, который вы ищете, можно найти здесь . Он показывает большие объемы данных, которые вы можете увеличить / уменьшить. У них также есть демоверсия нагрузки сервера * . Вот пример точечной диаграммы с сотнями точек данных.

0 голосов
/ 09 апреля 2010

Вы смотрели на средства управления графиками Telerik? Вот ссылка на одну из их демонстраций, где они используют 100.000 точек данных:
http://demos.telerik.com/silverlight/#Chart/Sampling

Я должен также упомянуть, что я сам не использовал элементы управления графиками, поэтому я не могу поручиться за них. Но демки выглядят хорошо для меня.

EDIT :
Ссылка выше устарела. Вот ссылка на последнее воплощение элемента управления графиками Telerik. Теперь они называют его ChartView:
http://demos.telerik.com/silverlight/#ChartView/FirstLook

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...