使用VisualVM在本地开发服务器中配置GAE应用程序

时间:2018-02-16 11:35:54

标签: java google-app-engine visualvm

我有一个消耗如此多内存的应用程序,我想对其进行分析,但我无法启动应用程序并传递参数-agentpath;在我添加此参数后,它等待探查器连接,因此GAE应用程序不会启动。我收到此消息

Profiler Agent: Waiting for connection on port 5140 (Protocol version: 15)

我正在使用maven启动GAE应用程序。 要启动的示例命令:

java -agentpath:C:/visualvm_139/profiler/lib/deployed/jdk16/windows-amd64/profilerinterface.dll=C:\visualvm_139\profiler\lib,5140 -javaagent:C:\Users\User\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.59\appengine-java-sdk\appengine-java-sdk-1.9.59\lib\agent\appengine-agent.jar -Dappengine.fullscan.seconds=5 -classpath C:\Users\User\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.59\appengine-java-sdk\appengine-java-sdk-1.9.59\lib\appengine-tools-api.jar com.google.appengine.tools.development.DevAppServerMain -p 8888 C:\Users\User\eclipse\workspace\App\

3 个答案:

答案 0 :(得分:0)

另一种解决方案是使用;

-Xdebug -agentlib:JDWP =运输= dt_socket,地址= 8000,服务器= Y,暂停= Y

会阻止应用程序,直到调试客户端连接到端口8000上。

答案 1 :(得分:0)

如果您在使用Visual Engine和App Engine时遇到问题,可以尝试其他方法,例如使用Stackdriver监视Java VM的不同方面,例如内存使用情况。

这个link包含有关如何设置Stackdriver代理并使用其监视功能来确定内存泄漏来自的所有有用信息。

答案 2 :(得分:0)

如果您不需要对应用程序的启动进行概要分析(从描述中看起来似乎没有),只需正常启动应用程序(不使用-agentpath)。启动VisualVM,打开您的应用程序并转到Profiler选项卡 如果您需要使用Startup profiler配置启动应用程序。它会告诉你,你应该做什么。