在做网络监控系统的性能测试时,出现了内存泄露的问题,困扰了很久,现在终于算是解决了,但是根本原因尚不明确,拿出来大家讨论下,看看能不能完美解决~
这个问题奇怪的地方在于是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 }