java - 性能Image.SCALE_DEFAULT与Image.SCALE_SMOOTH

标签 java multithreading image scale bufferedimage

我在多线程Java程序中缩放图像。

我使用2种不同的缩放方法:

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使用HDD,这是瓶颈。
或使用一些不接受大量图像的队列。

如何提高2机箱性能并使用100%的CPU?

最佳答案

www上有很多文章,为什么.getScaledInstance()邪恶

尽管我不确定Java专家是否没有在后台进行修复,但我还是建议您阅读

The Perils of Image.getScaledInstance()

并检查那里描述的方法。甚至可能有一些比jdk默认更好的扩展库。

关于java - 性能Image.SCALE_DEFAULT与Image.SCALE_SMOOTH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34507184/

相关文章:

java - 在java中隧道化两个套接字客户端

java - 如何使用eclipse在java中打印带下划线的字符串

java - MusicPlayer 音乐重复 "X"次

multithreading - 多处理器架构和 Ring 3

c# - 为什么我可以从线程中的表单访问控件而不会出现跨线程异常?

android - React-Native 0.63 无法访问 Android 10 中的设备存储图像

java - Android "values-large-land"资源未加载

java - powershell invoke-expression java程序获取状态

image - Yii2 : Show image from Folder Common

c# - 在 C# 中将图形转换为图像