Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FIFO缓冲区的性能条形图_Java_Performance_Swing_Bufferedimage - Fatal编程技术网

Java FIFO缓冲区的性能条形图

Java FIFO缓冲区的性能条形图,java,performance,swing,bufferedimage,Java,Performance,Swing,Bufferedimage,我对如何创建高性能的swing组件有疑问 组件应该绘制某种条形图。组件的数据存储在一个单独的FIFO缓冲类中。每次更新缓冲区时,都会通知组件 此时,每当数据更改时,组件都会绘制一个BuffereImage。然后,条形图组件的paintComponent方法绘制创建的BuffereImage 由于我的应用程序中有很多数据更改,我正在考虑改进BuffereImage的绘制。大部分条形图保持不变。它只是向右移动,最新的数据更改添加到条形图的左侧 此时,整个BuffereImage将从存储在缓冲区中的数

我对如何创建高性能的swing组件有疑问

组件应该绘制某种条形图。组件的数据存储在一个单独的FIFO缓冲类中。每次更新缓冲区时,都会通知组件

此时,每当数据更改时,组件都会绘制一个BuffereImage。然后,条形图组件的paintComponent方法绘制创建的BuffereImage

由于我的应用程序中有很多数据更改,我正在考虑改进BuffereImage的绘制。大部分条形图保持不变。它只是向右移动,最新的数据更改添加到条形图的左侧

此时,整个BuffereImage将从存储在缓冲区中的数据中重新创建。我能想到的是使用仿射变换来移动旧的BuffereImage,只添加最近添加的数据。这将大大减少BuffereImage上的绘图操作量

但我不知道这是否会加快应用程序的速度。BuffereImage上的仿射转换有多昂贵

欢迎任何评论。还有一些关于如何创建高性能swing应用程序的提示


提前感谢

没有某种基线,很难衡量改进。首先,您可以比较使用所示的两种方法。
dynamicmeseriescollection
以10Hz频率摆动;我没有仔细检查另一个,但它看起来很灵活。

没有某种基线,很难衡量改进。首先,您可以比较使用所示的两种方法。
dynamicmeseriescollection
以10Hz频率摆动;我没有仔细检查另一个,但它看起来很灵活。

至少,你需要编辑你的问题以显示预期的负载和占空比。至少,你需要编辑你的问题以显示预期的负载和占空比。我已经玩了一点JFreeChart,但我似乎不是正确的选择。该应用程序应与现有应用程序相似。所以我开始进入JFreeChart并进行调整。但我只需要一个非常简单的图表,所以我认为设计一个自己的组件会更有性能,也更灵活。我偶尔会这样做,但总是为了可伸缩性而返回。更改功能和添加新图表要容易得多。图表的奇怪之处在于:没有人只想要一张。YMMV。我仍然对负载和占空比感到好奇。我已经和JFreeChart玩了一点,但我似乎不是正确的选择。该应用程序应与现有应用程序相似。所以我开始进入JFreeChart并进行调整。但我只需要一个非常简单的图表,所以我认为设计一个自己的组件会更有性能,也更灵活。我偶尔会这样做,但总是为了可伸缩性而返回。更改功能和添加新图表要容易得多。图表的奇怪之处在于:没有人只想要一张。YMMV。我仍然对负载和占空比感到好奇。