大屏可视化分配率是什么意思_什么是分配率?

大屏可视化分配率是什么意思

Java分配率 诸如“不可持续的分配率”和“您需要保持较低的分配率”之类的短语似乎仅属于Java Champions的词汇表。 复杂,恐怖并被魔术光环包围。

经常发生的情况是,当您更仔细地查看概念时,魔术会随着抽烟消失。 这篇文章试图从提到的条款中删除魔术。

什么是分配率?我为什么要关心?

分配率以每个时间单位分配的内存量来衡量。 通常以MB /秒表示,但如果您愿意,可以每年使用PB。 这就是全部–没有魔术,只是您在一段时间内在Java代码中分配的内存量。

但是,仅了解这一事实并不太有益。 如果您可以忍受我,我将指导您实际使用该概念。

面对高分配率可能会给您的应用程序性能带来麻烦。 从实际的角度来看, 垃圾收集已成为瓶颈,从而浮出水面。 从硬件的角度来看,即使是商用硬件也可以维持每个内核数GB /秒的分配,因此,如果您的速率开始不超过1 GB /秒/核,您可以放心,您的硬件实际上不会成为瓶颈。

因此,在关注GC时,我们可以从一个在现实世界中也适用的类比开始-如果您创建很多东西,那么之后往往会面临很多清理工作。 知道JVM是使用垃圾收集机制构建的,因此需要研究分配速率如何更改GC暂停的频率或持续时间。

衡量分配率

让我们从分配率的测量开始。 为此,我们通过为JVM指定-XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps标志来打开GC日志记录。 JVM现在以与以下代码段类似的方式开始记录GC暂停:

0.291: [GC (Allocation Failure) [PSYoungGen: 33280K->5088K(38400K)] 33280K->24360K(125952K), 0.0365286 secs] [Times: user=0.11 sys=0.02, real=0.04 secs] 
0.446: [GC (Allocation Failure) [PSYoungGen: 38368K->5120K(71680K)] 57640K->46240K(159232K), 0.0456796 secs] [Times: user=0.15 sys=0.02, real=0.04 secs] 
0.829: [GC (Allocation Failure) [PSYoungGen: 71680K->5120K(71680K)] 112800K->81912K(159232K), 0.0861795 secs] [Times: user=0.23 sys=0.03, real=0.09 secs]

从上面的GC日志中, 我们可以将分配率计算为上一个收集完成后和下一个收集开始之前的年轻代大小之间的差。 使用上面的示例,我们可以例如提取以下信息:

  • JVM启动后的291 ms ,创建33,280K 个对象。 第一个次要的GC事件清除了Young一代,此后,Young一代还剩下5,088K个对象。
  • 发射后446毫秒,Young gen占用已增加到38,368K, 触发了下一个GC,从而将Young Gen的占用减少到了5,120K
  • 发射后829毫秒,Young gen大小为71,680K ,GC再次将减小为5,120K

然后可以在下表中表示此数据,将分配率计算为年轻入住率的增量:

事件 时间 年轻之前 年轻之后 分配期间 分配率
第一GC 291毫秒 33,280KB 5,088KB 33,280KB 114MB /秒
第二GC 446毫秒 38,368KB 5,120KB 33,280KB 215MB /秒
第三GC 829毫秒 71,680KB 5,120KB 66,560KB 174MB /秒
829毫秒 不适用 不适用 133,120KB 161MB /秒

有了这些信息,我们可以说该特定软件在测量期间的分配速率为161 MB /秒。

分析影响

现在,有了这些信息,我们就可以了解分配速率的变化如何通过增加或减少GC暂停的频率来影响应用程序吞吐量。 首先,您应该注意到只有Minor GC暂停清洁Young Generation会受到影响。 GC暂停清理旧一代的频率或持续时间不受分配率的直接影响,而受晋升率的直接影响,我们将在下一篇文章中介绍这一术语。

知道我们只能专注于次要GC暂停时,我们接下来应该查看Young Generation内部的不同内存池。 当分配在Eden中进行时 ,我们可以立即查看Eden的大小如何影响分配率。 因此,我们可以有一个假设,即增加Eden的大小将减少较小的GC暂停频率,从而使应用程序能够维持更快的分配速率。

实际上,当使用-XX:NewSize -XX:MaxNewSize和-XX:SurvivorRatio参数运行具有不同Eden大小的相同示例时,我们可以看到分配率有两倍的差异

  • 使用100M的Eden运行上述示例,将分配速率降低到100MB / sec以下
  • 将Eden大小增加到1GB,可以将分配速率增加到刚好低于200MB /秒。

如果您仍然想知道为什么这是正确的- 如果您不频繁地停止GC的应用程序线程,则可以做更多有用的工作。 还发生了更多有用的工作来创建更多对象,从而支持增加的分配率

现在,在得出“更大的伊甸园更好”的结论之前,您应该注意到分配率可能并且可能与应用程序的实际吞吐量没有直接关系。 这是一项技术指标,有助于提高吞吐量。 分配率可能会并且会影响您的次要GC暂停停止应用程序线程的频率,但是要查看整体影响,您还需要考虑主要GC暂停并以应用程序的业务操作(不是MB / sec)来衡量吞吐量。提供。

翻译自: https://www.javacodegeeks.com/2015/09/what-is-allocation-rate.html

大屏可视化分配率是什么意思

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++语言动态开辟的杨辉三角

点击蓝字关注我们问题引入杨辉三角相必大家并不陌生,第1行有1列、第二行有2列…第n行有n列,且每行行首和行尾的值都为1,其余的值为上一行两数相加我们在C语言阶段,第一次碰到的杨辉三角应该都是用常规的二维数组存储,可…

git gui 历史版本_这些Git命令都不会,还是不要去面试了

前言以下,项目中经常使用的Git命令,汇总到这里以便与你能快速的学习和掌握Git命令,在文章最后有惊喜哟,一定要看到最后啊!使用的 Git版本:git version 2.24.0命令git log# 输出概要日志,这条命令等同于# gi…

java restful_Java EE中的RESTful计时器

java restful在这篇文章中...。 EJB计时器旋风之旅 通过带有示例实现的简单REST接口即时使用EJB计时器 更新(2015年7月14日) 该应用程序的前端现在可以在OpenShift上使用 。 由于我是前端新手,因此我在其他来源的帮助下组装了此HTML5 Ang…

c# 联合halcon 基于相关性 模板匹配_机器视觉之halcon入门(5)-字符识别exe生成...

2.3.2 第二个halcon程序转EXE程序:字符识别老规矩,每一段halcon代码得用C#二次开发下。根据上一节所教的,我们配置下C#的环境,顺便添加好控件,如下图(2-3-2-1)。图 2-3-2-1控件基本跟上一节一样,只是少了一…

C语言数据的存储和取出(超详细讲解)

点击蓝字关注我们整形的储存我们知道一个整形的存储是以补码的形式储存取出是原码的形式。比如:int a 5;的二进制是101那它的原码应该是:00000000 00000000 00000000 00000101正数的原反补相同那它存进去和取出来都是:00000000 00000000 000…

打印pdf就一页_PDF 文件转换工具

是将 PDF 文件转换为完全可编辑的 Windows 文档最好的转换软件。无论您需要您的内容是 Microsoft Word、Excel、PowerPoint、HTML 还是仅需要文本, 总会给您一个简单的方法,快捷地获取您要的内容。可转换整个文档或选择内容。亦可创建 PDF 文件。PDF 转换…

C++类的this指针,静态成员,友元函数友元类

点击蓝字关注我们1. this指针在上篇讲C中类,对象,封装,继承(派生),多态的时候,this指针出现在成员函数中,并使用->成员提取符操作成员变量。在 C 中,每一个对象都能通…

批量提取文件创建时间_批量采集新浪微博用户内容

有时我们需要把某些用户的微博数据全部采集下来用作分析,每条信息复制的工作量是非常低效的,必须要借助工具。今天给大家介绍一款采集软件:微风采集器。打开软件,选择模板,下拉框选:批量提取指定用户微博内…

C++异常的规则

点击蓝字关注我们异常是指存在于程序运行时的异常行为,这些行为超出了函数正常功能的范围,当程序的某部分检测到一个无法处理的问题时,就需要用到异常处理。1. C语言中传统的处理错误方式终止程序:如assert,当发生错误…

异质性查询需要为连线设定_振奋人心!华东理工大学开发新型的荧光染料,为细胞成像奠定基础...

结合并激活荧光染料的适体荧光RNA(FR)已用于对丰富的细胞RNA种类进行成像。然而,诸如低亮度和具有不同光谱特性的染料/适体组合的有限可用性的局限性,限制了这些工具在活的哺乳动物细胞和体内的使用。最近,华东理工大学朱麟勇及杨弋共同通讯在…

C++ STL详解(1)

点击蓝字关注我们概述STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。STL 是 C 标准库的一部分,不用单独安装。C 对模板(Template)支持得很好,STL 就是借助模板把常用的数据结构及其算法都实现了…

各种说明方法的答题格式_高中化学:选择题答题方法与知识点总结,让你轻松秒杀各种难题...

选择题是化学考试中被广泛采用的一种题型。它具有知识容量大,覆盖面广,构思新颖、灵活巧妙,考试的客观性强,答题简单,评分容易、客观准确等优点。 选择题按考查形式可分为三种类型,即:常规型选择…

C++ STL详解(2)

点击蓝字关注我们来源自网络&#xff0c;侵删刷题时常用的STLstring之前写过一篇 string 的简介但是不是特别全面&#xff0c;这里再补充说明一下。size()返回字符串中字符的数量#include<iostream> #include<string>using namespace std;int main() {string str …

斐波那契数列的四种实现方式(C语言)

点击蓝字关注我们来源自网络&#xff0c;侵删斐波那契数列是一组第一位和第二位为1&#xff0c;从第三位开始&#xff0c;后一位是前两位和的一组递增数列&#xff0c;像这样的&#xff1a;0、1、1、2、3、5、8、13、21、34、55......今天&#xff0c;我们用四种方式来进行实现…

linux make命令_第一章 1.3Linux下安装Redis

1.3.2 Linux下安装Redis第一步: 去官网下载安装包 ,传送门第二步: 上传到Linux服务器,解压redis的安装包tar -zxvf redis-6.0.8.tar.gz这里我已经解压好了,并且移动到了redis目录下第三步: 安装基本环境yum -y insatll gcc-c这里注意一个问题,Centos下安装的gcc默认版本为4.8.5…

C语言strcpy函数的使用

点击蓝字关注我们strcpy简单使用&#xff1a; #include <stdio.h> #include <string.h>struct Student {int sid;char name[20];int age;} st; //此处分号不可省略int main(void) {struct Student st {1000,"zhangsan",20};printf("%d %s %d\n&…

什么镜头最适合拍风景_为什么您的风景摄影套件中应始终装有远摄镜头

当您考虑风景摄影镜头时&#xff0c;许多摄影师只考虑广角镜头。14-24mm f / 2.8或24-70mm f / 2.8等经典镜头是用于风景的流行光学元件。它们是绝佳的选择但是&#xff0c;也值得在风景摄影套件中使用长焦镜头。为什么要使用长镜头进行风景摄影&#xff1f;您在网上或浏览Inst…

C++ STL详解(3)

点击蓝字关注我们简介set 是 关联容器 的一种&#xff0c;是排序好的集合&#xff08;元素已经进行了排序&#xff09;。set 和 multiset 类似&#xff0c;它和 multiset 的差别在于 set 中不能有重复的元素。multiset 的成员函数 set 中也都有。使用 set 必须包含 #include<…

检测到基于堆栈的缓冲区溢出_检测到堆栈粉碎

检测到基于堆栈的缓冲区溢出我敢打赌&#xff0c;每个Java开发人员在他们的职业生涯开始时第一次遇到Java代码的本机方法时都会感到惊讶。 我还可以肯定&#xff0c;多年来随着了解JVM如何通过JNI处理对本机实现的调用而使惊奇消失了。 这篇文章是关于本机方法的最新经验。 更…

探讨 C++ 虚函数 virtual

点击蓝字关注我们来源于网络&#xff0c;侵删有无虚函数的对比C 中的虚函数用于解决动态多态问题&#xff0c;虚函数的作用是允许在派生类中重新定义与积累同名的函数&#xff0c;并且可以通过基类指针或引用来访问基类和派生类中的同名函数。首先写两个简单的类&#xff0c;类…