jvm分配内存_为JVM分配内存:一个案例研究

jvm分配内存

Batteriestand Anzeige 这篇文章是关于最近的性能调整练习的。 与往常一样,这些开始于关于症状的模糊表述。 这次,魔鬼采取了“应用程序速度慢,我们无权访问源代码的形式。 我们有什么选择来改善局势”。

对该应用程序进行仔细查看后发现,它由捆绑在一起的几个批处理作业组成。 深入研究“绩效”标准表明,执行特定工作所花费的时间过长。 稍后再仔细检查,我得到了一个可衡量的目标。 我需要从特定的作业运行时间中抽出两分钟,以适应预先分配的时间窗口。

陷入困境的应用程序是一个看起来非常无辜的小型JAR文件。 幸运的是,这也捆绑了负载测试。

在打开GC日志记录的情况下运行该应用程序( -XX:+ PrintGCTimeStamps -Xloggc:/path-to/gc.log -XX:+ PrintGCDetails )并快速查看日志,这是优化的第一个目标。 累积的GC暂停时间总计为三分半钟,暗示我可能有机会。

在这种情况下,他可以使用几种工具,其中一些简单明了:

  • 修改堆/内存大小
  • 更改GC算法
  • 配置内存区域之间的比率

我采取了改变堆大小的方法。 除了幸运的猜测外,它还基于最近学到的关于实时数据集大小和建议堆大小之间的相关性的课程。 从GC日志中,我还注意到该应用程序的实时数据集约为240m。 因此,根据我最近获得的知识,此应用程序堆的最佳结合点在720至960m之间。

但是在配置中,我发现-Xmx设置为仅300m。 稍微调整一下参数,我再次运行测试,结果如下:

堆大小 总GC暂停时间 通量
300m 207.48秒 92.25%
384m 54.13秒 97.97%
720m 20.52秒 99.11%
1,440m * 11.37秒 * 99.55%

*表示此配置在运行期间未触发Full GC。

现在,如果您查看结果,可能会将结果转换为“越大越好”。 如果仅以毫秒为单位进行测量,那的确是正确的。 如果成功标准之一与金钱有关,那么可能就不那么容易了。 在大型部署中将数百或数千台这些机器放在一起,您可能会单单在电费账单上就感到讨厌。

除此之外,本文是性能调整教科书中的教科书案例。 如果您有可衡量的目标,并且可以衡量结果而不是猜测,那么您将成功。 如果我被迫在没有明确目标或负载测试功能的情况下跳入,那么我仍然会调整配置的随机位。

参考: 为JVM分配内存:来自我们的JCG合作伙伴 Nikita Salnikov Tarnovski (来自Plumbr Blog博客) 的案例研究 。

翻译自: https://www.javacodegeeks.com/2014/03/allocating-memory-for-the-jvm-a-case-study.html

jvm分配内存

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

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

相关文章

如何在Spring Boot应用程序中使用配置文件

你好朋友, 在本教程中,我们将学习如何在Spring Boot应用程序中使用配置文件。 我们将在本教程中讨论以下几点: 1.什么是Spring Boot Profile,为什么我们需要分析 2.如何使用示例在Spring Boot中进行性能分析 3.如何设置/更改默…

光纤收发器常见故障问题的时候我们该如何解决呢

当我们在使用光纤收发器的时候,难免会遇到一些问题,当遇到这些常见故障问题的时候我们该如何解决呢?接下来就由飞畅科技的小编来为大家详细介绍下光纤收发器常见故障问题排查方法,一起来看看吧! 一、整体故障排查法 1…

光纤收发器的AB端可随便连接吗?

对于光纤收发器而言,收发器的主要作用是延长网络传输距离,可在一定程度上缓解了网线无法远距离传输的缺陷,为最后一公里传输带来了便捷,但是对于刚接触收发器的人来说会犯一些最为常见的错误,如光纤收发器的发射端与接…

JSON和XML:它们如何比较?

JSON和XML:它们如何比较? JSON和XML是两种人类可读的文本格式,多年来已成为竞争对手。 XML的目的是通过可选使用模式来存储和定义文档和数据。 JSON几乎与之完全相反-序列化格式的要求非常简单,可以放在信用卡背面。 但是&#xf…

光纤收发器故障导致不能上网该如何解决?

光纤收发器的作用就是光信号和电信号之间的相互转换,其过程大概为:把电信号转换为光信号,通过光纤传送出去,在另一端再把光信号转化为电信号,再接入路由器、交换机等等设备。但是,光纤收发器在使用过程中难…

光纤收发器分发射和接收吗?光纤收发器配对使用问题详解!

光纤收发器是光口与电口之间的转换,是网口通过光纤来延伸的一种设备,光纤收发器作为光电转换设备一般是成对使用,但也可以出现光纤收发器与光纤交换机、光纤收发器与SFP收发器配对使用也是可以的,原则上只要光传输波长是一样的、信…

光纤收发器元器件指标详情

在以太网光纤收发器设计中,元器件的选择举足轻重,它决定了产品的性能、寿命和成本。光电介质转换芯片(OEMC)是整个收发器的核心。选择介质转换芯片是以太网光纤收发器设计的第一步,也是非常重要的一步。它的选择直接影响和决定了其它元器件的…

如何在网络中成对使用光纤收发器?

我们知道,传统以太网中非屏蔽双绞线的传输距离只能达到100米,而且很容易受到电磁干扰(EMI),导致网络性能不佳。以太网光纤收发器的出现有效地将传统以太网和现代光纤网络结合在一起,完美地解决了上述问题。那么,如何在…

职业综合英语 章节答案考试答案 深圳职业技术学院[渝粤教育]

教育 -职业综合英语-章节资料考试资料-深圳职业技术学院【】 Quiz 1、【判断题】 Google is the world’s most popular website. A、正确 B、错误 参考资料【 】 2、【判断题】Larry Page set up Google in January 1996 at Stanford. A、正确 B、错误 参考资料【 】 3、【判断…

什么是工业光纤收发器,工业收发器的作用是什么?

工业收发器是发射器和接收器的组合,两者共享公共电路。通常,收发器用于无线通信系统中。从历史上看,收发器用于将计算机连接到外围设备,例如打印机,键盘,调制解调器,操纵杆和鼠标。当前&#xf…

自动化测试在CI CD管道中的作用

业界广泛采用的软件开发实践:持续集成和持续部署可确保良好地交付产品并经常交付。 常规代码提交需要常规/连续测试,而如果忽略它,则可能导致基础架构无法恢复。 如何交付坚固的CI CD管道? 对于许多公司来说,这是一个问…

单模单纤光纤收发器指示灯及故障问题详解

光纤收发器是现在网络传输中应用比较广泛的设备了,其特点是成对使用,体积小,传输距离远(25KM)。在实际应用中难免会碰到一些故障,现杭州飞畅科技的小编就光纤收发器使用过程中的相关指示灯及故障问题整理如…

POE供电光纤收发器在网络监控中的应用

现如今,随着安防行业的不断发展,在传输信号的过程中对载体提出了更高的要求。光口交换机固然有其成本,市场化程度高等优点,但在网络摄像机越来越多的运用到光纤收发器加光纤交换机的方案。接下来就由飞畅科技的小编来为大家介绍下…

javafx canvas_JavaFX技巧2:使用Canvas API进行清晰绘图

javafx canvas最初开始使用Canvas API时,我注意到渲染代码的结果有些模糊,甚至更糟,不一致。 有些线条模糊,有些线条清晰。 来自Swing,我花了一些时间才意识到这是由JavaFX的坐标系引起的,该坐标系允许双精…

Zing加快了JVM应用程序的预热

Java虚拟机(JVM)提供了托管运行时环境,用于安全部署应用程序,其性能通常可以超过本机编译语言(如C和C )的性能。 通过即时(JIT)编译进行垃圾收集和自适应编译的内存管理是两个最突出…

多模光纤收发器的基本参数及主要特点

多模光纤收发器具备地址过滤、网络分段及智能报警等功能,可提高网络工作效率及网络运行可靠性。飞畅科技10/100M双芯多模自适应以太网光纤收发器,采用最新美国KENDIN芯片,高品质光收发一体模块,性能稳定,质量优良。适用…

没有垃圾回收的JVM

JVM社区不断增加新的GC,最近又添加了一个新的GC,它称为Epsilon ,是非常特殊的一个。 Epsilon仅分配内存,但不会回收任何内存。 看起来好像不执行任何垃圾回收的GC用途是什么。 这种类型的垃圾收集器有特殊用途,我们将…

多模光纤收发器的应用领域及适用领域

双纤多模高性能10/100Mbit自适应光纤收发器(光电转换器),具备地址过滤、网络分段及智能报警等功能,可提高网络工作效率及网络运行可靠性。可实现最远5公里无中继计算机数据网的高速远程互连。产品性能稳定可靠,设计方面…

光电转换器有什么用 光电转换器的作用

现如今,网络已经是我们生活中所必不可缺的一部分了,我们一旦离开了网络就仿佛与世界脱轨,所以说网络现在在我们的生活中扮演者一个非常重要的角色。在这其中光电转换器是一种不可缺少的设备,它将我们要发送的电信号转换成光信号&a…

Java中的命令设计模式

在本教程中,我们将学习命令模式,这是一种重要的行为设计模式。 它具有一些重要的应用程序,例如在文本编辑器中实现撤消/重做功能。 在命令设计模式中,有一个命令对象位于发送方和接收方对象之间。 发送者对象可以创建命令对象。 …