GC当中吞吐量和暂停时间的区别

GC当中吞吐量和暂停时间的区别是:吞吐量就是 CPU 用于运行用户代码的时间与 CPU 总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用户代码时间 + 垃圾收集时间)。“暂停时间” 是指一个时间段内应用程序线程暂停,让 GC 线程执行的状态。

GC当中吞吐量和暂停时间的区别-Worktile社区

吞吐量(throughput)

吞吐量就是 CPU 用于运行用户代码的时间与 CPU 总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用户代码时间 + 垃圾收集时间)

比如:虚拟机总共运行了 100 分钟,其中垃圾收集花掉 1 分钟,那吞吐量就是 99%

这种情况下,应用程序能容忍较高的暂停时间,因此,高吞吐量的应用程序有更长的时间基准,快速响应是不必考虑的

吞吐量优先,意味着在单位时间内,STW 的时间最短:0.2 + 0.2 = 0.4

暂停时间(pause time)

“暂停时间” 是指一个时间段内应用程序线程暂停,让 GC 线程执行的状态

例如,GC 期间 100 毫秒的暂停时间意味着在这 100 毫秒期间内没有应用程序线程是活动的

暂停时间优先,意味着尽可能让单次 STW 的时间最短:0.1+ 0.1+ 0.1 +0.1+0.1 = 0.5

吞吐量与暂停时间的对比

高吞吐量较好因为这会让应用程序的最终用户感觉只有应用程序线程在做 “生产性” 工作。直觉上,吞吐量越高程序运行越快

低暂停时间(低延迟)较好因为从最终用户的角度来看不管是 GC 还是其他原因导致一个应用被挂起始终是不好的。这取决于应用程序的类型,有时候甚至短暂的 200 毫秒暂停都可能打断终端用户体验。因此,具有低的较大暂停时间是非常重要的,特别是对于一个交互式应用程序

不幸的是 “高吞吐量” 和 “低暂停时间” 是一对相互竞争的目标(矛盾)

因为如果选择以吞吐量优先,那么必然需要降低内存回收的执行频率,但是这样会导致 GC 需要更长的暂停时间来执行内存回收

相反的,如果选择以低延迟优先为原则,那么为了降低每次执行内存回收时的暂停时间,也只能频繁地执行内存回收,但这又引起了年轻代内存的缩减和导致程序吞吐量的下降

在设计(或使用) GC算法时,我们必须确定我们的目标: 一个 GC 算法只可能针对两个目标之一(即只专注于较大吞吐量或最小暂停时间),或尝试找到一个二者的折衷

延伸阅读:

什么是GC?

GC(Grid Communication)网格通信

网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有精确的定义和内容定位。比如国外媒体常用“下一代互联网”、“Internet2”、“下一代Web”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。中国科学院计算所所长李国杰院士认为,网格实际上是继传统互联网、Web之后的第三次浪潮,可以称之为第三代互联网应用。

网格是利用互联网把地理上广泛分布的各种资源(包括计算资源、存储资源、带宽资源、软件资源、数据资源、信息资源、知识资源等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等),虚拟组织最终实现在这个虚拟环境下进行资源共享和协同工作,彻底消除资源“孤岛”,最充分的实现信息共享。

文章标题:GC当中吞吐量和暂停时间的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37795

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月12日 下午4:15
下一篇 2023年2月12日 下午4:18

相关推荐

  • 项目章程的作用是什么

    项目章程的作用是正式宣布项目的存在,对项目的开始实施赋予合法地位,同时粗略地规定项目的范围,这也是项目范围管理后续工作的重要依据。最后项目章程正式任命项目经理,授权其使用组织的资源开展项目活动。 项目章程多数由项目出资人或项目发起人制定和发布的,它给出了关于批准项目和指导项目工作的主要要求,所以它是…

    2023年1月17日
    33200
  • 什么是机器学习

    机器学习是指机器通过统计学算法,对大量历史数据进行学习,进而利用生成的经验模型指导业务。它是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 目前机器学习主要应用在以下场景: 营销类场景:商品推荐、用户群体画像或广告…

    2022年10月12日
    7.9K00
  • python与Matlab神经网络之间的区别是怎样的

    区别是:Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python解释器易于扩展,可以使用C语言或C++扩展新的功能和数据类型。MATLAB用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 Python Python由…

    2023年2月20日
    10700
  • 软件项目管理证书有哪些

    目前项目管理的证书比较知名的包括:1、高项;2、PMP认证;3、集成项目管理。项目管理运用各种相关技能、方法与工具,为满足或超越项目有关各方对项目的要求与期望,所开展的各种计划、组织、领导、控制等方面的活动。 一、高项 信息系统项目管理师(简称‘高项’)属于软考高级科目,软考是我国计算机软件考试。与…

    2023年4月16日
    5200
  • 日程任务管理软件有哪些

    日程任务管理软件有:一、中华万年历日历;二、365日历;三、滴答清单;四、生日管家;五、万年历;六、奇妙日程;七、多多便签;八、微约日历;九、腾讯日历;十、超级日程表。中华万年历日历直接上手机里面看一些传统的日历就可以了,而且里面还会显示天气。 一、中华万年历日历 很多人都喜欢在家里挂一个万年历,那…

    2023年4月16日
    2100
  • 项目库操作流程怎么写

    项目库操作流程步骤是:一、登录项目库系统;二、创建项目;三、添加文档;四、分享文档;五、编辑文档;六、删除文档;七、导出文档;八、查看项目统计信息;九、退出项目库系统。首先,打开项目库系统登录页面。在登录页面中输入正确的用户名和密码。 一、登录项目库系统 首先,打开项目库系统登录页面。在登录页面中输…

    2023年4月27日
    400
  • 测试管理工具有哪些

    测试管理工具有:1.QAComplet;2.Test Director;3.PingCode-Testhub;4.Quality Center;5.IBM Rational Manager;6.Testuff;7.TestRail;8.TestLink;9.QMetry;10.TestLodge。市…

    2022年11月12日
    43000
  • 工单管理系统流程是什么

    标准的工单管理系统处理流程包括以下环节:1、申请环节;2、审核环节;3、派单环节;4、接单环节;5、执行环节;6、验收环节;7、归档环节。企业工单管理是设备管理的核心功能,是预防性维护、计划性维护、突发性维护的闭环操作。 标准的工单管理系统处理流程 :申请环节、审核环节、派单环节、接单环节、执行环节…

    2022年11月6日
    19900
  • 抖店如何经营

    抖店经营的方法:1、注册抖音店铺;2、做好抖音店铺的基础搭建;3、高效选品;4、联系达人,获取流量带货;5、及时拍单发货;6、做好售后处理。注册抖音店铺是指准备好开店所需的资料和资金然后去入驻抖音小店。 1、注册抖音店铺 抖音小店目前仅支持有营业执照的商家入驻,个体户或者企业户都可以。 开通营业执照…

    2023年3月18日
    9700
  • 做物流管理的软件有哪些

    做物流管理的软件有:一、SAP;二、Oracle;三、Kingdee;四、中集集团;五、快递鸟。SAP是一家跨国软件公司,旗下拥有SAP物流管理软件,是市场上最为知名的物流管理软件之一。SAP物流管理软件通过集成不同的物流管理模块,实现了企业物流管理的全面控制和协同。 一、SAP SAP是一家跨国软…

    2023年5月23日
    1000

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部