ImageIcon加载变得越来越慢

| 在我的Java GUI应用程序中,我需要重复缩放某些组件,并使用以下代码进行此操作:
Image newImage = myimage.getScaledInstance(width, height, Image.SCALE_REPLICATE);

ImageIcon newIcon = new ImageIcon(newImage);

this.setIcon(newIcon);

this.setSize(width,height);

//increment width, height
最初,这很好,但是经过多次迭代(几百次)之后,新的ImageIcon()构造函数根据一些简单的时间检查花费了过多的时间(约1秒)。其余代码很快。 为什么在多次迭代后会发生这种情况,并且随着迭代次数的增加,我如何才能使其停止减速? (将图像加载到后台线程中是行不通的,因为加载图像不是固定时间的操作)。     
已邀请:
看看Image.getScaledInstance()的危险。在这里可能不是问题,但是直到尝试替代方法,您才知道。     
我记得以前的问答,那里的图像加载导致内存问题。我认为您需要遵循理论,这是内存泄漏: 通过在启用GC日志记录的情况下运行JVM来确认这是问题所在,然后查看日志消息与观察到的速度降低之间是否存在某种关联。 (一种或另一种方法可能需要一分钟左右的时间来确认。) 使用您喜欢的内存分析器尝试跟踪泄漏。     

要回复问题请先登录注册