jvm ide

有没有想过为什么Eclipse / Netbeans会一直暂停一段时间? 特别是当您想向亲爱的同事展示代码中的内容时? 感到尴尬和尴尬,不是吗?

我发现大多数情况下IDE会由于执行垃圾收集器而暂停。 JVM设计中的微妙元素很少起作用,通常可以使我们的开发人员免于担心内存消耗,并且大多数人都高兴地知道它可以很好地完成工作,并且在大多数情况下会忽略它。 但是,如果我们只是忽略它,运行垃圾收集器的后果可能会让我们感到惊讶。

简而言之,当GC运行时,它将暂停应用程序的执行,直到完成释放内存为止。 对于Java绝对不是第一选择的实时系统,这肯定是不可接受的。 但是,即使在非关键的大型桌面应用程序中(现代Java IDE确实如此),GC也会使整个应用程序停止运行几秒钟。 这可能在一天中发生几次。 您可以想象,使用IDE之类的生产力工具,只会降低其“生产力”效果。

一个解决方案是进行一些调整:

  • 增加运行IDE的JVM的内存(请注意,这只会降低调用GC的频率,但是会延长单个GC运行的执行时间–从较大的堆中收集垃圾需要更长的时间…)
  • 将默认的GC引擎切换为更并发的引擎,即使在完整GC停止一切执行之前,它也会尝试连续收集垃圾

第一个选项是大多数Java程序员所熟知的-只需为MaxPermSize及其系列定义合理的值即可。

但是,第二种选择不是很为人所知。 关键是Oracle Java Hotspot JVM提供了几种可供选择的GC引擎,我们可以从中选择。 而且,它们与默认值不同,即使在大型GC执行之间也会提供连续的垃圾收集,这会减慢一切。

G1垃圾收集器

从Java 7更新4开始,Oracle 在JVM中提供了G1垃圾收集器 。

您可以使用以下命令行参数简单地启用它:

-XX:+UseG1GC

G1还有一个有趣的选项来限制GC处理的时间,因此限制了由于GC导致的暂停时间。

-XX:MaxGCPauseMillis=n

我建议将其设置为2000,因为使用IDE时通常可以接受2秒的暂停。 请注意,这只是G1收集器的一个软提示-如果GC周期需要更多时间,则不会尊重它,但是在大多数情况下,G1应该尊重它。

有关如何配置G1的更多信息,请参阅Java Hotspot VM G1选项 。

CMS垃圾收集器

在某些基准测试中 ,较早的CMS收集器性能优于较新的G1收集器。

您可以使用以下选项来启用它而不是G1:

-XX:+UseConcMarkSweepGC

特殊的Eclipse调整

GC调整确实有助于提高Netbeans安装的性能。 但是,说实话,在Eclipse IDE中,GC调整只是优化性能的众多步骤之一,不幸的是,这只是次要的步骤。 有助于做更多事情的是配置方面的调整,例如关闭代码中的某些验证,减小控制台输出的大小。 就我而言,控制台输出冻结了Eclipse,以至于我需要将应用程序服务器的标准输出重定向到文件并完全绕过控制台:(

翻译自: https://www.javacodegeeks.com/2016/02/decrease-java-ide-lagging-fine-tuning-jvm-garbage-collector.html

jvm ide

jvm ide_通过微调JVM Garbage Collector减少Java IDE滞后相关推荐

  1. 通过微调JVM Garbage Collector减少Java IDE滞后

    有没有想过为什么Eclipse / Netbeans会一直暂停一段时间? 特别是在您想向亲爱的同事展示代码中的内容时? 感觉很尴尬和尴尬,不是吗? 我发现大多数时间由于垃圾收集器的执行而导致IDE暂停 ...

  2. 深入理解JVM 一GC(下) G1 Garbage Collector

    文章目录 关于java程序性能 响应能力 吞吐量 G1 Garbage Collector g1收集器的设计目标: G1的设计规划,是要替换掉CMS. 之前的GC收集器对Heap的划分: G1对Hea ...

  3. 【JVM从小白学成大佬】4.Java虚拟机何谓垃圾及垃圾回收算法

    在Java中内存是由虚拟机自动管理的,虚拟机在内存中划出一片区域,作为满足程序内存分配请求的空间.内存的创建仍然是由程序猿来显示指定的,但是对象的释放却对程序猿是透明的.就是解放了程序猿手动回收内存的 ...

  4. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector

    文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...

  5. 【JVM调优】JVM的运行参数

    在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能高效的运行,绝大部分的参数保持默认即可 三种参数类型 jvm的参数类型分为三类,分别是 * 标准参数* -help* -versio ...

  6. 深入理解JVM虚拟机13:JVM面试题,看这篇就足够了(87题详解)

    1.java中会存在内存泄漏吗,请简单描述. 会.自己实现堆载的数据结构时有可能会出现内存泄露,可参看effective java. 2.64 位 JVM 中,int 的长度是多数? Java 中,in ...

  7. java jvm垃圾回收算法_深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法

    本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 喜欢的话麻烦点下Star哈 文章将同步到我的个人博客: www.how ...

  8. 深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法

    JVM GC基本原理与GC算法 Java的内存分配与回收全部由JVM垃圾回收进程自动完成.与C语言不同,Java开发者不需要自己编写代码实现垃圾回收.这是Java深受大家欢迎的众多特性之一,能够帮助程 ...

  9. 深入理解JVM虚拟机10:JVM常用参数以及调优实践

    本文转自[JVM常用参数以及调优实践](https://blog.csdn.net/a724888/article/details/78367780) JVM常用参数选项 jvm 可配置的参数选项可以 ...

最新文章

  1. 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf
  2. 14、Power Query-行列管理
  3. Mckinsey insights!
  4. root能写入东西,其它账号不能写,可能的原因
  5. java基础File的简单使用记录
  6. 东华理工专科计算机应用,计算机专业考研:东华理工大学计算机应用技术专业介绍...
  7. debounce实现 js_Vue.js以组件或者插件的形式实现throttle或者debounce
  8. python做测试需要哪些技能_测试人员需要具备哪些基本技能
  9. 中国团队入选美国物理学会2018年度国际物理学十大进展
  10. Python 求数字开方
  11. vscode生成html5快捷键,vscode快捷键
  12. javaweb之统计网站访问量小案例
  13. css怎么修改图片像素,怎么改变图片宽度_word怎么改变图片像素大小
  14. 《漫游》之《耽美幻想》
  15. IDEA Android开发 连接华为手机调试
  16. Lenet、Alexnet 、VGG、 GoogleNet、ResNet模型
  17. 开发落网电台windows phone 8应用的计划(3)
  18. iOS完整App资源收集
  19. OpenWrt之feeds.conf.default详解
  20. 什么是焊锡机器人?如何使用?

热门文章

  1. 51nod1766-树上的最远点对【结论,线段树】
  2. P1852-跳跳棋【思维,差分,二分】
  3. 2725. [Violet 6]故乡的梦(删边最短路同[TJOI2012]桥)
  4. Codeforces Round #666 (Div. 2)
  5. NOIP提高组复赛 知识点整理
  6. HDU5765 Bonds (高维前缀和)
  7. Oracle入门(十四D)之常规函数
  8. ssh(Spring+Spring mvc+hibernate)——EmpController
  9. sql server链接查询
  10. 2019蓝桥杯省赛---java---B---7(外卖店优先级)