强制gc和普通gc的区别

强制gc和普通gc的区别,第1张

就是自动化和半自动化的区别。

强制gc是指java中的垃圾回收站。

java中的gc可以自动清理没用的变量占用的内存,从而不需要程序员手动的去释放空间,大大的提高了工作效率;

普通gc指这个请求机制提供给程序员一个启动 GC 过程的机会,但是启动由 JVM负责。JVM可以拒绝这个请求,所以并不保证这些调用都将执行垃圾回收。

如果您的应用程序对象创建率很高,因此,垃圾回收率也将非常高。高垃圾收集率也会增加GC暂停时间。因此,优化应用程序以创建较少数量的对象是减少长GC暂停的有效策略。这可能是比较耗时,但值得100%进行。为了优化应用程序中的对象创建速度,您可以考虑使用Java Profiler(如 JProfiler, YourKit,JVisualVM )。这些分析器将报告

小提示:如何计算对象创建率

当年轻代太小时,对象将被过早地提升为老代。从老年代收集垃圾要比从年轻代收集垃圾花费更多的时间。因此,增加年轻代的大小可以减少长时间的GC暂停。可以通过设置两个JVM参数中的任何一个来增加年轻代

GC算法的选择对GC暂停时间有很大影响。除非您是GC专家或者打算成为一个专家或者团队中的某人是GC专家,否则您可以调整GC设置以获得最佳的GC暂停时间。假设您不具备GC专业知识,那么我建议您使用G1 GC算法,因为它具有 自动调整功能。在G1 GC中,您可以使用系统属性“ -XX:MaxGCPauseMillis”设置GC暂停时间目标。例:

根据上面的示例,最大GC暂停时间设置为200毫秒。这是一个软目标,JVM将尽力实现这一目标。如果您已经在使用G1 GC算法,并且仍然继续经历高暂停时间,请参考本文。

有时由于内存不足(RAM), *** 作系统可能正在从内存中交换应用程序Swapping非常昂贵,因为它需要磁盘访问,这比物理内存访问要慢得多交换过程时,GC将花费很长时间才能完成。

下面是从StackOverflow获得的脚本(感谢作者)-执行该脚本 将显示所有正在交换的进程。请确保您的进程没有被交换

如果发现进程正在交换,请执行以下 *** 作之一:

a。向服务器分配更多RAM

b。减少服务器上运行的进程数,以便它可以释放内存(RAM)。

C。减小应用程序的堆大小(我不建议这样做,因为它可能导致其他副作用)

对于GC日志中报告的每个GC事件,将打印user,sys和real time。例:

(如果在GC事件中您始终注意到“real time”并不比“user”时间显着少,则可能表明GC线程不足。考虑增加GC线程数。假设“user”时间为25秒,并且您已将GC线程数配置为5,那么“real time”应接近5秒(因为25秒/ 5个线程= 5秒)。

警告:添加过多的GC线程将消耗大量CPU,并会占用应用程序的资源。因此,您需要在增加GC线程数之前进行彻底的测试

如果文件系统的I / O活动繁重(即发生大量读取和写入 *** 作),也会导致长时间的GC暂停。这种繁重的文件系统I / O活动可能不是由您的应用程序引起的。可能是由于同一服务器上正在运行的另一个进程引起的,仍然可能导致您的应用程序长时间处于GC暂停状态( >

GC有多层含义,主要为:

1、是计算机术语,指Garbage Collection(网格通信),网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,比如国外媒体常用“下一代互联网”、“Internet2”、“下一代Web”等来称呼网格相关技术。

2、指Garbage Collection(垃圾回收),JAVA/NET中的垃圾回收器,有了GC,程序员就不需要再手动的去控制内存的释放。当Java虚拟机(VM)或NETCLR发觉内存资源紧张的时候,就会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间。

3、指“全局目录”Global Catalog,全局编录包含了各个活动目录中每一个对象的最重要的属性,是域林中所有对象的集合。在域林中,同一域林中的域控制器共享同一个活动目录,这个活动目录是分散存放在各个域的域控制器中的,每个域中的域控制器保存着该域的对象的信息。

扩展资料:

GC有多层含义,一是计算机术语,指Garbage Collection;二是网络用语,支持的意思;三是网络域中的GC,就是“全局目录”Global Catalog;四是科研用语,即Gas Chromatography(气相色谱法)。

科研用语,Gas Chromatography(气相色谱法)

气相色谱法是利用气体作流动相的色层分离分析方法。汽化的试样被载气(流动相)带入色谱柱中,柱中的固定相与试样中各组份分子作用力不同,各组份从色谱柱中流出时间不同,组份彼此分离。

参考资料:

百度百科-GC

以上就是关于强制gc和普通gc的区别全部的内容,包括:强制gc和普通gc的区别、减少长时间的GC停顿、gc是什么意思,有哪些含义等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9839263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存