我在静态类和类似的语句中有大约 150 张 gif(都相当小 = 1KB)
public final static ImageIcon I_ADDFAV = new ImageIcon("icons/addfavorite.gif");
public final static ImageIcon I_AUTO_LOAD = new ImageIcon("icons/auto_load.gif");
...
我用它们来显示带有图标的 JButton。 在应用程序启动期间,我注意到与这些语句相关的加载时间增加了大约 2 秒。我想知道是否有人知道加载这些 gif 的更快方法。我在想,将所有这些都放在一个文件中可能是一种方式,因为我怀疑从光盘读取 150 个小文件是这方面的实际延迟。但我可能是错的。有没有人有一个聪明的主意或曾经处理过这种情况?我们希望将其降低到毫秒。
干杯 约安尼斯
最佳答案
我建议将所有图像合并到一个文件中,就像 a website should combine all its image requests into a single request for a bunch of sprites .几乎所有从磁盘加载文件的时间都花在寻道时间(将磁头移动到磁盘上的正确轨道)和旋转延迟(等待磁盘旋转,使磁头位于正确的位上)。因此,从磁盘读取大文件的时间与从磁盘读取大量小文件的时间基本相同,一旦大图像在内存中,您就可以将所有 Sprite 分开并将它们显示在按钮上。
关于java - 如何快速加载大约 150 个静态 ImageIcon 对象。每个1KB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152611/