Здравствуйте, notacat, Вы писали:
N>это Candlesticks? Ну вот infragistics про свой чарт пишет, что они умеют много и быстро. Не смотрели коммерческие контролы на эту тему, что там с производительностью?
смотрел я на всё что есть, все чарты (мои конкуренты ) просто при достижении определиного количества обьектов начинают их групировать уменьшая их количетсво, что ни есть правильно для финансовых чартов.
Здравствуйте, Holms, Вы писали:
H>Здравствуйте, notacat, Вы писали:
H>>>вы попробуйте вывести 1000 прямоугольников в силвере самым быстрым методом который знаете (я знаю только про Path -> GeometryGroup), а потом сравните скорость в WPF используя Canvas.OnRender -> DrawingContext. N>>а зачем? Я конечно понимаю, что можно всяко извратиться, но по-моему, имеет смысл сравнивать конкретные приложения, а этюды в вакууме. H>для биржевых чартов, и клиенту хоть убейся надо видеь > 1000 прямоугольников, обьяснять что это никчему бесполезно, иначе refund. N>>У MS на эту тему хорошо Sima Ramchandani пишет: http://blogs.msdn.com/b/seema/archive/2009/05/28/tips-for-creating-massive-amounts-of-shapes.aspx . Возможно, найдете более быстрый способ для своих прямоугольников. H>Я с ней лично говорил, Scott Guthrie познакомил, то что она говорит я использовал и так, всё-равно ничто не сравнится с DrawingContext в WPF. H>И тот блог пост был создан после разговора со мной, второй и последний комент там мой, как видите ответа нету.
Кстати, для равномерной (не Gradient) заливки можно использовать WriteableBitmapEx (http://writeablebitmapex.codeplex.com/). В частности, рисование в массив точек (можно в отличном от UI Thread) и перенос их на WriteableBitmap. Рисует очень быстро. Минусы — обычный цвет и отсутствие сглаживания(для прямоугольников не критично)
Здравствуйте, me2, Вы писали:
me2>Кстати, для равномерной (не Gradient) заливки можно использовать WriteableBitmapEx (http://writeablebitmapex.codeplex.com/). В частности, рисование в массив точек (можно в отличном от UI Thread) и перенос их на WriteableBitmap. Рисует очень быстро. Минусы — обычный цвет и отсутствие сглаживания(для прямоугольников не критично)
смотрел эту либу, как только добавять сглаживание начну тестить.
Здравствуйте, me2, Вы писали:
me2>Здравствуйте, Holms, Вы писали:
H>>Здравствуйте, notacat, Вы писали:
N>>>я недавно делала очередной рефакторинг и выяснила, что если правильно готовить, то производительность сильверлайта уже не хуже, чем в WPF, а местами даже лучше. H>>вы попробуйте вывести 1000 прямоугольников в силвере самым быстрым методом который знаете (я знаю только про Path -> GeometryGroup), а потом сравните скорость в WPF используя Canvas.OnRender -> DrawingContext.
H>>Хотя сказали что 5-ом силвере будет моментальная графика а не отложенная, жду не дождусь посмотреть и попробовать на скорость отрисовки 2D контента.
me2>А еще он Freezable objects не поддерживает. Так что все эти прямоугольники приходится генерировать в UI Thread. Тормоза еще те
Вот кстати UIThread — это проблема, я вот недавно решал простейшую задачку экспортнуть сильверлайтный рисунок в картинку, так практически всю работу приходиться делать в визуальном потоке, что при большом разрешении может несколько секунд занимать, при этом весь ГУЙ висит, даже прогресс не покажешь, и кнопку "Прервать" не сделаешь, так как аналога DoEvents() в сильверлайте тоже нету.
Здравствуйте, Holms, Вы писали:
H>смотрел я на всё что есть, все чарты (мои конкуренты ) просто при достижении определиного количества обьектов начинают их групировать уменьшая их количетсво, что ни есть правильно для финансовых чартов.
А над каким чартом ты сам работаешь? Нам иногда нужно быстро показывать сотни тысяч маркеров, на WinForms делали через AGG, ну а в WPF/SL, похоже, без WriteableBitmap не обойтись.
Здравствуйте, Andy77, Вы писали:
A>А над каким чартом ты сам работаешь? Нам иногда нужно быстро показывать сотни тысяч маркеров, на WinForms делали через AGG, ну а в WPF/SL, похоже, без WriteableBitmap не обойтись.
над этим. Текущая версия работает не очень, щас мы переделываем, вяроятно будем использовать WriteableBitmap, хотя нам нужно сглаживание линий а такого пока нету для него.