【发布时间】:2012-03-11 19:13:53
【问题描述】:
我正在使用一个运行了几个小时的简单测试程序。
public static void main(String[] args) {
for (int i=1; i<500; i++) {
run();
}
}
public static void run() {
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
new String("Hello World");
}
}
}).start();
}
当我通过 PS 或 pmap 监控进程时,RSS 部分增加,而 jvisualvm 报告堆稳定。
如果我总结所有 RSS 匿名映射,它们会随着时间的推移而增加。
我正在使用 Centos 5.7 x64 和 Sun JDK 1.6.0_31。
RSS 是否应该随着时间的推移而增加?
【问题讨论】:
-
您的程序是否创建了 499 个运行无限循环的线程?
-
嗨,我不确定 RSS 是什么意思,但尝试更改这个新字符串(“Hello World”);到这个“Hello World”;如果你不让它每次都创建一个新字符串,你可能不会有内存泄漏。这个练习有什么意义呢?
-
@yael: RSS 代表 resident set size,你可以在en.wikipedia.org/wiki/Resident_set_size阅读更多内容