我有问题如何创建一个高性能的摇摆组件。
该组件应绘制某种条形图。组件的数据存储在separte FIFO缓冲器类中。每次更新缓冲区时,都会通知组件。
每当数据发生变化时,组件就会绘制一个BufferedImage。然后条形图组件的paintComponent方法绘制创建的BufferedImage。
由于我的应用程序中存在大量数据更改,我正在考虑改进BufferedImage的绘制。大多数条形图保持不变。它只是向右移动,最新的数据更改被添加到条形图的左侧。
此时,整个BufferedImage将从存储在缓冲区中的数据中重新创建。我能想到的是使用AffineTransformation移动旧的BufferedImage并仅添加最近添加的数据。这将极大地减少BufferedImage上的绘图操作量。
但我不知道这是否会加速申请。 BufferedImage上的AffineTransformation有多贵?
欢迎任何评论。还有一些提示如何创建一个高性能的swing应用程序。
提前致谢
答案 0 :(得分:1)
如果没有某种基线,很难衡量改进。首先,您可以使用here比较显示JFreeChart
的两种方法。 DynamicTimeSeriesCollection
面包10Hz;我没有仔细检查过另一个,但它看起来很灵活。