過去のエントリで、
- File.createTempFile() と File.deleteOnExit() のコンボ罠 - HHeLiBeXの日記 正道編
- File.createTempFile() と File.deleteOnExit() のコンボ罠の続き - HHeLiBeXの日記 正道編
というのを書いたが、別に「コンボ罠」というわけではないらしい。
以下のようなコードでもプロセスのメモリ使用量はずんずん増えていく。
import java.io.File; public class Main1 { public static void main(String[] args) { try { File test = File.createTempFile("test",".txt"); for (long i = 0; true; ++i) { if (i % 100 == 0) { if (i % 100000 == 0) { System.out.println("--- " + i + " ---"); } Thread.sleep(10); } test.deleteOnExit(); } } catch (Exception e) { e.printStackTrace(); } } }
import java.io.File; public class Main2 { public static void main(String[] args) { try { for (long i = 0; true; ++i) { File test = new File("test.txt"); test.createNewFile(); if (i % 100 == 0) { if (i % 100000 == 0) { System.out.println("--- " + i + " ---"); } Thread.sleep(10); } test.deleteOnExit(); test.delete(); } } catch (Exception e) { e.printStackTrace(); } } }
だったら、あれ(何)でも再現してもよさそうなのだが‥負荷が足りないのだろうか。