Контроль плотности изображения Silverlight высокой плотности

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

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

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

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

Ответ 1

Ознакомьтесь с 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 статьи, которую я создал, если вы хотите взглянуть!

Ответ 2

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

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

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

Инфраструктура, безусловно, получает это право. Я могу связать миллион odatapoints и получить плавный результат. Здесь образец Infragistics.

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 7

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

Ответ 8

Посмотрели ли вы на контрольные элементы Telerik? Вот ссылка на одну из их демонстраций, где они используют 100 000 точек данных:
http://demos.telerik.com/silverlight/#Chart/Sampling Забастовкa >

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

ИЗМЕНИТЬ:
Ссылка выше устарела. Вот ссылка на последнюю инкарнацию контрольного элемента Telerik. Теперь они называют это ChartView:
http://demos.telerik.com/silverlight/#ChartView/FirstLook