1

我有一个需要更好性能的旧 Java 小程序(不是我写的)。

我使用分配:

getToolkit().getImage(imageURL)

我的问题是:

  1. 它接缝图像将一张一张地加载而不是平行的

  2. 该请求具有所有 http keep-alive 标志,但对于每个图像,它都会打开一个新的 tcp 连接。并且永远不要关闭连接。

是否有一种解决方案可以与使用 http keep-alive 功能并行处理图像?

一个简短的例子,应用程序如何工作:

public class test 
{
    Map<String, URL> urlList = new HashMap<String, URL>();
    urlList.put("test", "/test.jpg"); 
    urlList.put("grrr", "/grrr.jpg");    
    urlList.put("htutz", "/htutz.jpg"); 
    urlList.put("fsdfgf", "/fsdfgf.jpg"); 
    urlList.put("fdgsfd", "/fdgsfd.jpg"); 
    urlList.put("fdgtzt", "/fdgtzt.jpg"); 
    urlList.put("reterg", "/reterg.jpg"); 
    urlList.put("ssdfsfdgsfd", "/ssdfsfdgsfd.jpg"); 

    for (URL imageUrl: urlList) {
    {
        new ImageExample(imageUrl);
    }
}


public class ImageExample extends JApplet {
    Image image;

    public void ImageExample(URL imageUrl) {
        image = getToolkit().getImage(imageUrl);
    }

    public void paint(Graphics g) {
        g.drawImage(image, 20, 20, this);
    }

    @Override
    public void draw( Graphics g )
    {
       paint(g);
    }
}
4

1 回答 1

1

创建一个新线程来加载每个图像并在加载图像时终止它。

像这样,您将同时加载所有图像,而不是逐个图像加载。(而且你也不会阻塞 ui 线程)

(因为您不会使用缓存)

于 2013-04-02T14:07:35.747 回答