2012-08-15 3 views
0

Я использую Steema TChart в своем приложении. Я использую этот компонент для построения линейного графика, обычно содержащего от 1000 до 2000 точек данных, в режиме реального времени, когда точки данных становятся доступными. Типичная линия занимает около 30 секунд.Проблема с производительностью TChart

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

Кто-нибудь нашел способы использования этого компонента и улучшения производительности?

ответ

2

В этом случае возможно асинхронная техника окраски, используя свойство AutoRepaint, как предлагается в this thread, поможет повысить производительность вашей системы. В основном вам нужно установить Autorepaint в false, чтобы предотвратить перерисовку диаграммы после добавления точки и вернуть ее к истине и обновить вызов при завершении добавления данных.

В режиме реального времени диаграмма статья here также может помочь улучшить производительность приложения TeeChart. Это статья Delphi, но большая часть ее также может быть применена к .NET-версии TeeChart.

И последнее, но не менее важное: TeeChart for .NET поставляется с механизмом рендеринга Direct2D. Это идеально подходит для высокоскоростной передачи данных, требуемой приложениями реального времени DSP. См. Белая книга, Boosting graphics-rendering performance in Windows Forms, для более близкого взгляда.

+0

Спасибо, это была полезная информация. – user1601717

Смежные вопросы