getImage()性能

时间:2013-04-02 13:06:19

标签: java http

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

我使用了分配:

getToolkit().getImage(imageURL)

我的问题是:

  1. 它的接缝图像将逐一加载而不是并行

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

  3. 是否有使用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);
        }
    }
    

1 个答案:

答案 0 :(得分:1)

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

像这样你将同时加载所有图像而不是图像再加载图像。 (而且你也不会阻止ui线程)

(因为你不会使用缓存)