java - 如何对远程 Java Web 应用程序进行内存分析

标签 java memory profiling

我知道我们可以使用 JProfiler 等工具。 有没有关于如何配置它以仅通过远程监控显示内存使用情况的教程?

有什么想法吗?

最佳答案

你有 VisualGC,它不是很先进,但你可以看到你的应用程序的内存使用情况(garbage、old、perm 等...)

http://java.sun.com/performance/jvmstat/visualgc.html

继续: 您在远程机器上启动守护进程监控(http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstatd.html,请参阅安全性说明)

JAVA_HOME/bin/jstatd -J-Djava.security.policy=jstatd.all.policy

这里有一个名为 jstatd.all.policy 的文件,其中包含:

    grant codebase "file:${java.home}/../lib/tools.jar" {   
permission java.security.AllPermission;
};

在远程机器上,你得到了你的应用程序的 pid 以使用 jps 工具进行调试:

http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html#jps

最后在您的本地机器上启动 visualgc :

visualgc the_pid@remote_machine_address

关于java - 如何对远程 Java Web 应用程序进行内存分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/194328/

相关文章:

java - 如何在像Visual Studio这样的IDE(Eclipse、Spring Tool Suite)中调试Java代码?

haskell - 为什么 Haskell 要求所有库都启用分析才能进行分析?

用于 Apache 之上实时系统的 PHP Profiler

linux - webgrind 不显示函数名称或文件源

java - java有divmod指令吗?

java - 列表迭代器卡住-Java

java - UNIX 中 Java 程序出现 NoClassDefFound 错误

windows - 关于进程地址空间中的 NULL-Pointer Assignment Partition 的问题

php - 你能在它杀死脚本之前捕获超出分配的内存错误吗?

java - 在 Java 中存储数据