java调用gc_如何提高java中GC调用的速度?

本文探讨了如何通过调整Java虚拟机(JVM)参数来减少垃圾收集(GC)暂停时间,这对于时间敏感的应用至关重要。建议使用-XpauseTarget参数设置最小暂停目标,并避免调用System.gc()。同时,推荐使用JVisualVM等工具进行实时性能监控和问题定位。文章还提供了一组示例JVM配置,以实现更短的GC暂停时间,并强调了优化代码以减少对象创建的重要性。
摘要由CSDN通过智能技术生成

如果更改GC暂停时间,则应更频繁地进行垃圾回收.这可能对某些时间关键应用程序很有用,在这些应用程序中,即使可能有更多集合,您也需要尽可能长时间地使用垃圾收集. -XpauseTarget应该将此作为VM参数.这里的最小值是10毫秒.不要调用System.gc().根据您调用它的位置,您可能会使您的应用程序效率极低.

最好的想法是简单地优化您的应用程序以使用更少的对象.您可以使用JDK附带的JVisualVM等工具在运行时检查您的应用程序并找出问题所在,并查看垃圾收集信息.

您也可以尝试不同的垃圾收集器.我使用以下内容,它在某些应用程序中帮助我,比如说内存使用比CPU时间更重要(尽管这里有一些无用的选项 – 只需将它们清除掉):

-Xincgc

-XX:+CMSIncrementalPacing

-XX:+UseAdaptiveSizePolicy

-XX:+AggressiveOpts

-XX:+ExplicitGCInvokesConcurrent

-XX:+UnlockExperimentalVMOptions

-XX:+UseConcMarkSweepGC

-XX:UseSSE=3

-XX:+UseParNewGC

-XX:SurvivorRatio=2

-XX:NewRatio=8

-XX:+DoEscapeAnalysis

-XX:+UseFastAccessorMethods

-XX:+ForceTimeHighResolution

-XX:+UseTLAB

-XX:+ResizeTLAB

-XX:MaxGCPauseMillis=10

-XX:ParallelGCThreads=8

-XX:+CMSParallelRemarkEnabled

-XX:+DisableExplicitGC

-XX:+UseAdaptiveGCBoundary

-XX:-UseGCOverheadLimit

-Xnoclassgc

-server

-Xss128k

-Xms1g

-Xmx1g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值