2

Java で記述されたプロジェクトのイメージについて、いくつかのテストを実行しています。興味深い結果が得られましたが、その理由がわかりません。と の初期化行を次に示しBufferedImageますImage

File[] files = new File("C:\\Users\\SAMSUNG\\Desktop\\img\\").listFiles();
time = System.currentTimeMillis();
for (File f:files){
    Image img = ImageIO.read(f);
}
System.out.println((System.currentTimeMillis() - time) + " miliseconds.");

注意: これら 2 つの操作は別々に実行されます。上記のものを実行すると、プロセスが終了します。つまり、下のものを実行するよりも、実際に強制終了されます。

File[] files = new File("C:\\Users\\SAMSUNG\\Desktop\\img\\").listFiles();  
time = System.currentTimeMillis();
for (File f:files){
    BufferedImage bimg = ImageIO.read(f);
}
System.out.println((System.currentTimeMillis() - time) + " miliseconds.");

これらを実行して実行すると、同じファイルにアクセスしようとすると結果に影響する可能性があることを認識しています。そのため、それらを個別に実行します。結果は40分近く。ただし、BufferedImage初期化は常に初期化よりも 1 分高速ですImage。何故ですか?

テストを 3 回実行しましたが、結果は同じです。

4

2 に答える 2