如何提高SWT绘图性能?

Mar*_*ato 3 java performance swt

我被赋予了改善股票市场图表软件性能的任务,该软件使用SWT GC绘制图表.图表绘图需要改进,因为图表有时会每秒重绘多次,并且会占用大量处理器时间.

谷歌搜索后,我发现一个博客条目,建议直接修改ImageData对象而不是使用GC方法,承诺获得巨大的性能提升.

使用这种技术绘制水平和垂直直线和方形形状是一件容易的事,但是当涉及绘制圆形和其他不规则形状时,没有简单的方法.

有没有人知道是否有一个库在ImageData对象上绘制形状,就像对象对象GC的方法一样Image

另外,有没有人知道改善SWT性能的另一种方法?

提前致谢.

Aar*_*lla 6

衡量解决方案的性能.大部分时间花在哪里?猜猜是不够的.在90%的情况下,您的猜测都是错误的.如果您不知道,则无法解决问题.

SWT本身并不慢.事实上,SWT只是一个非常薄的层,相应的OS系统调用绘制.

SWT的一个问题是它是同步的.为了确保线程问题不会导致问题,可以使用全局锁定.因此,如果您同时从多个线程渲染,这可能是一个问题.

或者你可能没有正确地缓存颜色和字体等资源.这些都很昂贵.你创造了多少个GC?你是否保留一个或者你是否每帧创建一个新的?

但我只是在这里猜测.除非你能用性能监视器证明"花费大部分时间......",否则无法帮助你.