太多 AS 卡慢停当问题,怒发 jvm 参数,此良药有点毒,服用前请看注解选择服用. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mko0okmko0
V2EX    Android

太多 AS 卡慢停当问题,怒发 jvm 参数,此良药有点毒,服用前请看注解选择服用.

  •  
  •   mko0okmko0 2015-11-06 22:17:35 +08:00 13517 次点击
    这是一个创建于 3677 天前的主题,其中的信息可能已经有所发展或是发生改变。
    依照使用环境肯定不会每个人都一样快,优化后比原来更慢的请不要喷,但欢迎讨论可能的原因.
    studio(64).exe.vmoptions:-da 之前的参数改成以下(去除含#后的注解和空行):
    -server #先调到 server 模式,很多预设参数直接优化了,启动稍慢但资源消耗有比较好.
    #我喜欢先设小,然后依需求消耗 rm,并设定回收百分比参数提早回收.一开始就大,你的 ram 肯定回收不了,设小才有回收机会
    -Xms4m #设多小能正常用就设多小,反正都是省 ram.
    -Xmx1280m #一个 jvm 最多消耗的 ram,实际消耗还要加上 Perm
    -Xss256k #设多小能正常用就设多小,反正都是省 ram.
    -XX:+AggressiveOpts #开启官方激进优化
    -XX:PermSize=8m #设多小能正常用就设多小,反正都是省 ram.
    -XX:+UseG1GC #我喜欢不分新旧带的混合回收管理.用 AggressiveOpts 才有,大家依照自己喜欢的选 cms 爆发回收或是并行回收
    -XX:+UseStringDeduplication #G1GC 送的字串重复空间回收,据说省 80%重复字串资源.
    -XX:MaxHeapFreeRatio=40 #提早回收延迟分配 ram
    -XX:MinHeapFreeRatio=30 #提早回收延迟分配 ram
    -XX:MaxGCPauseMillis=200 #每次回收 ram 的时间不要超过 0.2 秒,避免卡,但会增加顿的机会,用顿换不卡
    -XX:GCTimeRatio=4 #用 1/(1+4)=20%的 CPU 资源处理回收 ram 的消耗,预设是 1/(1+19)=5%所以预设的回收很慢,多给他 CPU 资源换取 ram.反正 cpu 很少用满.
    -XX:G1ReservePercent=25 #G1GC 回收参数.看官方说明按喜好调整.
    -XX:InitiatingHeapOccupancyPercent=0 #G1GC 一直标记可回收 ram.我喜欢持续回收.用顿换不卡
    -XX:+ScavengeBeforeFullGC #回收卡死之前尝试再次局部回收.用顿换不卡
    -XX:+DoEscapeAnalysis #分析优化,没啥感觉.
    #优化执行过程产生的 BIN.
    -XX:+UseFastAccessorMethods
    -XX:+UseFastEmptyMethods
    -XX:+UseFastJNIAccessors

    -XX:UseAVX=2 #不加这个买赛扬算了,浪费好 CPU,=2:当你有小于 2 的 AVX 或是没有会自动降级和停用,所以加了也没差.
    -XX:UseSSE=5 #不加这个买赛扬算了,浪费好 CPU,=5:当你有小于 5 的(s)sse 或是没有会自动降级和停用,所以加了也没差.不能大于 5 会出错.
    -XX:+UseSSE42Intrinsics #不加这个买赛扬算了,浪费好 CPU,上面的不能启动 sse4.2.要这条.
    #都是动态化使用资源,用顿换不卡
    -XX:+UseTLAB
    -XX:+ResizeTLAB
    -XX:+UseAdaptiveGCBoundary
    -XX:+UseAdaptiveSizePolicy

    -XX:CompileThreshold=8000 #-server 后有效,当 jvm 用脚本模式执行某程式某段几次后转成原生 BIN,次数将影响产生的 BIN 品质,越小越差但越快完成,经大量测试,8000 之后的数字优化结果几乎同等 8000 所以是 8000 次后转 BIN.
    -XX:+TieredCompilation #当转 BIN 之后再次执行 8000 次后转第 2 次,终极优化 BIN.
    -XX:+BackgroundCompilation #转 BIN 的时候用最低优先权的背景线程去转,让你的桌面工作顺畅.

    studio.vmoptions 也是以上内容

    甚至环境参数 java_opts 也设,这样 jvm 启动时有发现 java_opts,就会以该内容的参数来启动 java,让所有 java 都能优化,但有些 JAVA 会跟以上部分参数冲突,导致无法启动,所以可以开小以点:
    java_opts= -Xms4m -Xss384k -XX:PermSize=8m -XX:+AggressiveOpts -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=30 -XX:MaxGCPauseMillis=200 -XX:GCTimeRatio=4 -XX:+ScavengeBeforeFullGC -XX:+UseFastAccessorMethods -XX:+UseFastEmptyMethods -XX:+UseFastJNIAccessors -XX:UseAVX=2 -XX:UseSSE=5 -XX:+UseSSE42Intrinsics -XX:+UseTLAB -XX:+ResizeTLAB -XX:+UseAdaptiveGCBoundary -XX:+UseAdaptiveSizePolicy -XX:CompileThreshold=8000 -XX:+TieredCompilation -XX:+BackgroundCompilation
    第 1 条附言    2015-11-11 07:48:25 +08:00
    我为了说清楚一些参数结果边查边实验,又改进了参数表,但我不会修改文章,所以发到 JAVA 区了:
    t/235137#reply0
    请大家前往此篇讨论.
    6 条回复    2015-11-10 17:54:07 +08:00
    vcc
        1
    vcc  
       2015-11-06 22:27:40 +08:00 via Android
    战略马克
    lyz1990
        2
    lyz1990  
       2015-11-06 22:40:56 +08:00
    不卡的表示淡定 233
    kaedea
        3
    kaedea  
       2015-11-06 22:42:56 +08:00
    …… 上了三星的 SSD+16GDDR3 后,很久没有这些烦恼了
    顺便说一下 我的电脑是 12 年的普通笔记本
    dezng
        4
    dezng  
       2015-11-10 09:37:50 +08:00
    :)
    试一下,看效果怎么样
    dezng
        5
    dezng  
      &nbp;2015-11-10 11:43:06 +08:00
    注释掉此配置文件中的
    -XX:+UseStringDeduplication
    原有配置文件中的
    -XX:+UseConcMarkSweepGC

    以前开两份源码会卡,现在不卡了,用久一点看怎么样。
    mko0okmko0
        6
    mko0okmko0  
    OP
       2015-11-10 17:54:07 +08:00
    我为了说清楚一些参数结果边查边实验,又改进了参数表,但我不会修改文章,所以发到 JAVA 区了:
    t/235137#reply0
    请大家前往此篇讨论.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1032 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 23:34 PVG 07:34 LAX 15:34 JFK 18:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86