Java堆内存使用量波动
发布时间:2020-12-15 04:31:20 所属栏目:Java 来源:网络整理
导读:亲爱的开发人员你好, 我在java应用程序中遇到堆内存使用问题. 应用程序本身只接受Socket连接 主线程我没有以下脚本(静态ExecutorService实例除外): ServerSocketFactory serverFactory = ServerSocketFactory.getDefault();ServerSocket server = serverFac
亲爱的开发人员你好,
我在java应用程序中遇到堆内存使用问题. 主线程我没有以下脚本(静态ExecutorService实例除外): ServerSocketFactory serverFactory = ServerSocketFactory.getDefault(); ServerSocket server = serverFactory.createServerSocket(Configuration.port); for(;;) { Socket client = server.accept(); Configuration.getExecutor().submit(new Client(client)); } 当应用程序运行时,它应该阻止循环,直到有人连接… 问题是:当没有人连接到我的服务器时,堆内存使用量是波动的(见下面的截图) 提前致谢… 解决方法
如果您使用visualvm或jconsole或jmc来监视堆使用情况,它会使用RMI和JMX,这会产生大量垃圾.也就是说,这是你的监控.
顺便说一句,即使你有一个简单的程序 System.in.read(); 这些工具将显示正在创建垃圾,但不会显示您的程序. 我建议你尝试改用 jps -lvm 获取进程ID或pid jstat -gccause {pid} 10s 监视内存使用情况.这也会产生少量垃圾. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |