V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Antidictator
V2EX  ›  程序员

Spring Tool Suite 老是假死 怎么破

  •  
  •   Antidictator · 2017-03-13 14:25:40 +08:00 · 9394 次点击
    这是一个创建于 2812 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT ,这是 sts.ini ,我觉得我已经调整的挺大的了。

    -startup
    plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
    -product
    org.springsource.sts.ide
    --launcher.defaultAction
    openFile
    --launcher.XXMaxPermSize
    256M
    -vmargs
    -Dosgi.requiredJavaVersion=1.7
    -XstartOnFirstThread
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    -server
    -Xmn256m
    -Xms2048m
    -Xmx4096m
    -Xss8m
    -XX:PermSize=1024m
    -XX:MaxPermSize=1024m
    -XX:+UseParallelGC
    
    

    公司要求用 eclipse ,我习惯用 sts 。

    在不换 ide 的情况下,怎么减少这种假死(未响应)次数呢,内存 8G 。

    CPU 、内存都是只用 80%,还没爆。

    4 条回复    2017-03-13 18:28:11 +08:00
    jones
        1
    jones  
       2017-03-13 15:56:51 +08:00   ❤️ 3
    假死可能有两个原因:
    一、 GC 引发的 STW
    二、 Eclipse 4.x 的自身的性能问题, Eclipse 4.2 发布后报漏出来很大的性能问题,这个也是官方承认的,见下面
    https://www.infoq.com/news/2012/09/eclipse-juno-performance
    官方的说法是没钱没资源所以发布前没做性能测试,虽然 Google 随后赞助了一些资金,但是性能问题在 4.x 中一直
    存在,根本没有得到彻底性解决,为此 Eclipse 还新增了一个“ UI Responsiveness Monitoring"功能,然没有卵用,个
    人猜测是 E4 的架构问题导致,总之 E4 就是一个又丑又慢又垃圾的作死产物,很多人都认为 Eclipse 自己把自己玩死了,
    .............扯远了,见谅,,总之如果你要用 Eclipse 4.x ,一定要用最新版,目前应该是 4.6.2 。

    解决办法:
    针对第一个原因,调整你的 JVM 参数,说实话你的 GC 参数够烂,以减少 GC 次数和降低 STW 的停顿时间为目标,并不是 Heap 越大越好,你搞 4G 的 Heap ,一次 Full GC 停顿好几秒甚至十几秒,不卡死你卡谁啊,另外 GC 新生代并行收集器,旧生代 CMS ,打开你的 GC Log,不看 GC 日志的调优都是刷流氓。初始值和最大值设置成一样的,新生代整个 Heap 的 3/8,自己算,启动 STS 重新编译一次项目,根据你的 GC Log 内容调整你整个 Heap 大小和新生代大小, 3/8 只是官方建议值,没啥实际意义,肯定要根据自己的情况做调整的。永久代可以 384m,512m 这些,初始和最大也搞成一样的,你搞 1G 明显是浪费,你有那么多 class 吗,

    针对第二个原因,升级你的 STS 到最新版,每个项目都要关掉 Validation,去除 JavaScript Facets ,话说 Eclipse 做的 JSDT 插件是我见过最烂的 js 插件,还不如不做呢,基本上 Eclipse 假死都是 JSDT 这货搞的。
    http://movingfulcrum.com/the-fall-of-eclipse/ , Eclipse 基本已经完蛋了,又没钱又没开发资源,死抱着它的”大平台“概念,不好好做 IDE ,光宣传它的平台有卵用啊,古时候同样功能的插件你总是能找到好几个不同的,现在都死的不能在死了,连个好的 Freemarker 编辑器插件你现在都找不到, 4.6.x 才加了一个 JSON 编辑器,但是连个 JSON 格式化都没做好,根本就是一个半成品......总之就是如果条件允许赶紧换 IDEA,甚至 Netbeans 都比 Eclipse 强。

    附上我的 eclipse.init 供参考,同时编译几个大的项目也从来没有卡死过:

    -startup
    ../Eclipse/plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
    --launcher.library
    ../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.401.v20161122-1740
    -showsplash
    org.eclipse.platform
    --launcher.defaultAction
    openFile
    --launcher.appendVmargs
    -vmargs
    -Dosgi.requiredJavaVersion=1.8
    -Xms1024m
    -Xmn384m
    -Xmx1024m
    -XX:MetaspaceSize=256M
    -XX:MaxMetaspaceSize=384M
    -XX:+DisableExplicitGC
    -XX:+PrintGCTimeStamps
    -XX:+PrintGCDetails
    -verbose:gc
    -Xloggc:gc.log
    -Duser.language=en
    -Xdock:icon=../Resources/Eclipse.icns
    -XstartOnFirstThread
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    sorra
        2
    sorra  
       2017-03-13 16:25:28 +08:00
    把 Eclipse 内置的 Task List 相关插件都禁用。另外 STS 性能也不好
    Antidictator
        3
    Antidictator  
    OP
       2017-03-13 18:27:37 +08:00 via Android
    @jones 感谢感谢,等两个小时等来个高质量回复
    Antidictator
        4
    Antidictator  
    OP
       2017-03-13 18:28:11 +08:00 via Android
    @sorra 好的,我试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   992 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:02 · PVG 04:02 · LAX 12:02 · JFK 15:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.