为了满足我的http服务器的SLA,我需要管理在GC中花费的时间。所以,我需要根据请求最小化新对象。
首先,我想要测量每个请求的新对象数量。我尝试通过堆转储差异来实现,但这显示了大量冗余数据。我觉得,我不仅捕获了根据请求创建的对象。
是否有任何简单的方法可以查看根据请求创建的对象平均?
答案 0 :(得分:0)
如果容器是WebSphere,则在使用ObjectAllocateCount
选项时,如here所述,有一个选项-XrunpmiJvmpiProfiler
。我没有试过这个。
答案 1 :(得分:0)
最后我使用了jvisualvm。
加载您的服务器,运行几千个预热请求。打开"监控"选项卡,按"执行GC"。然后打开profiler选项卡,将其配置为保存分配堆栈跟踪并运行。在服务器上运行重负载。等待100-200K请求并推送"快照"。
使用堆栈跟踪享受详细分配的对象日志!