我在多线程java程序中缩放图像。
我使用了两种不同的缩放方法:
1例:
Image tmp = bufferedImage.getScaledInstance(w, h, Image.SCALE_DEFAULT);此方法将CPU加载到100%上。在我的数据集上工作20秒。
2例:
Image tmp = bufferedImage.getScaledInstance(w, h, Image.SCALE_SMOOTH);此方法只加载CPU的50%。在我的数据集中工作35秒。不管运行这段代码的线程有多少。
感觉像Image.SCALE_SMOOTH使用硬盘,这是瓶颈。或者使用不接受大量图像的队列。
如何提高2例的性能,并使用100%的CPU?
发布于 2015-12-29 08:35:51
有很多关于为什么.getScaledInstance()是邪恶的文章。
虽然我不确定Java的人是否在引擎盖下修复了它,但我建议您阅读
检查这里描述的方法。甚至还有一些比jdk默认值更好的库。
https://stackoverflow.com/questions/34507184
复制相似问题