在做網絡監(jiān)控系統(tǒng)的性能測試時,出現了內存泄露的問題,困擾了很久,現在終于算是解決了,但是根本原因尚不明確,拿出來大家討論下,看看能不能完美解決~
這個問題奇怪的地方在于是Java進程內存泄露,而不是平常的JVM內存泄露,用Jprofile等工具也無法看出問題所在。
測試代碼如下:
1 System.loadLibrary("test1");
2
3 int threadPoolSize = 400;
4 ExecutorService service = Executors.newFixedThreadPool(threadPoolSize);
5
6 for (int i = 0; i < 400; i++) {
7 service.submit(new Runnable() {
8 public void run() {
9 while (true) {
10 try {
11 Thread t = new Thread();
12 t.start();
13 Thread.sleep(100);
14 } catch (Exception e) {
15 e.printStackTrace();
16 }
17 }
18 }
19 });
20 }