我想知道为 Xmx,Xms,Xmn 和 Xss 设置的不同值如何影响垃圾收集和性能?
根据什么参数,我们可以决定这些参数的最佳值?
监控和分析可用的工具是什么?
答案 0 :(得分:3)
如果您想要详细说明,http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#generation_sizing是可以效仿的更好资源之一。
就工具而言,除了默认的Java工具,如Hprof,hat,visualvm和Jconsole。其他商业广告也存在,如Appdynamics,yourkit,jprofiler,dynatrace,newrelic等。
答案 1 :(得分:1)
通常最好的方法是在实际负载下对应用程序进行性能测试。
一般来说,如果单独留下这些参数是合理的最佳选择。如果您知道这样做可以提高性能,则应该只设置它们。要知道它可以提高性能,您应该进行负载测试,以证明该设置的性能更好。 (还有其他东西只是猜测工作)
答案 2 :(得分:0)
首先是一些有用的链接:
为了监控,我习惯Netbeans Profiler
。
您还可以设置一些VM选项以打印GC活动(例如):
-verbose:gc -XX:+ PrintGCDetails -XX:+ PrintGCApplicationConcurrentTime -XX:+ PrintGCApplicationStoppedTime
或
-agentlib:HPROF =堆=所有
最后,您可以使用MemoryMXBean监控您的应用。
还有很多其他监控工具,选择你的!