服务热线:

17396898298

垃圾房、岗亭、公共厕所 源头生产厂家

可根据客户不同的需要,进行个性化设计制造

新闻中心
新闻资讯
联系我们

联系人:张经理

手 机:17396898298

电 话:17396898298

邮箱:

地 址:

公司新闻

扬州保安岗亭原创了解Java中的垃圾

作者:147小编点击:184 发布时间:2022-08-19 12:31:47

原标题:了解Java中的垃圾收集(GC)性能问题

广告22:01广告广告广告了解详情 >会员跳广告首月9.9元秒后跳过广告举报内容举报的弹幕内容举报原因:取消提交提交成功

开通搜狐视频黄金会员,尊享更高品质体验!

1080P及以上画质仅为黄金会员专享>

开通/续费会员
播放视频不存在(UGC-5101)有话要说?我要反馈>>正在切换清晰度...播放00:0000:00/00:00广告下拉浏览更多5X进行中炫彩HDRVIP尊享HDR视觉盛宴智观-AI识别哎呀,什么都没识别到反馈循环播放跳过片头跳过片尾个性皮肤个性皮肤恢复默认设置色彩调整亮度
标准
饱和度100对比度100
恢复默认设置
举报发送全部log复制全部logMailTo:FANKUI

自动化GC的一个优点是开发人员不需要真正了解它是如何工作的。不幸的是,这意味着许多开发人员不了解它是如何工作的。了解垃圾收集和许多可用的GC,有点像了解Linux CLI命令。从技术上讲,你不需要使用它们,但是了解并习惯使用它们会对你的生产力产生重大影响。

与CLI命令一样,有一些绝对的基础。ls命令查看父文件夹中的文件夹列表,mv命令将文件从一个位置移动到另一个位置,等等。在GC中,这些命令相当于知道有多个GC可供选择,并且GC可能会导致性能问题。当然,还有很多东西需要学习(关于使用Linux CLI和垃圾收集)。

学习Java的垃圾收集过程的目的是为了学习如何有效地实现和维护适合你特定环境的具有最佳性能的正确GC。了解垃圾收集会影响应用程序性能是最基本的,有许多高级技术可以提高GC性能并减少其对应用程序可靠性的影响。

GC性能问题

1. 内存泄漏

通过了解堆结构和垃圾收集的执行方式,我们知道内存使用量会逐渐增加,直到发生垃圾收集事件并且使用量下降为止。被引用对象的堆利用率通常保持稳定,因此丢弃的卷应该大致相同。垃圾房生产厂家

在内存泄漏的情况下,每个GC事件都会清除一小部分堆对象(尽管留下的许多对象未被使用),因此堆利用率将继续增加,直到堆内存已满,并引发OutOfMemoryError异常,原因是GC只将未引用的对象标记为删除,因此,即使引用的对象不再使用,它也不会从堆中清除。

2. 持续的Stop the World事件

在某些场景中,垃圾收集可以调用Stop the World事件,因为当它发生时,JVM中的所有线程(以及在其上运行的应用程序)都将停止,以允许GC执行。在健康的应用程序中,GC执行时间相对较短,对应用程序性能影响不大。

但是,在不太理想的情况下,Stop the World事件可能会极大地影响应用程序的性能和可靠性。如果GC事件需要Stop the World暂停并需要2秒钟执行,则该应用程序的最终用户将在运行该应用程序的线程停止以允许GC时经历2秒钟的延迟。通过java培训学习,可以帮助你更好地了解垃圾回收相关问题,提高代码质量。

当内存泄漏发生时,连续Stop the World事件也是有问题的。由于每次执行GC都会清除较少的堆内存空间,因此剩余内存填满所需的时间更短。当内存已满时,JVM会触发另一个GC事件。最终,JVM将反复运行Stop the World事件,从而引起重大性能问题。垃圾房生产厂家

3. CPU使用率

这一切都取决于CPU的使用。连续GC/Stop the World事件的一个主要症状是CPU使用量激增。GC是一个计算量很大的操作,因此可能需要占用更多的CPU资源。对于运行并发线程的GC,CPU使用率甚至更高。为您的应用程序选择正确的GC将对CPU使用产生最大的影响,但也有其他方法可以在这方面优化以获得更好的性能。

我们可以从围绕垃圾收集的这些性能问题中了解到,无论GCs系统变得多么先进(而且越来越先进),它们的致命弱点仍然是一样的:冗余和不可预测的对象分配。要提高应用程序性能,选择正确的GC是不够的。我们需要知道这个过程是如何工作的,我们需要优化我们的代码,这样我们的GCs就不会占用过多的资源,或者在我们的应用程序中造成过多的暂停。返回搜狐,查看更多

责任编辑:

相关标签:
新闻资讯
相关产品
在线客服
联系方式

热线电话

17396898298

上班时间

周一到周五

公司电话

17396898298

二维码
线