-XX:CompileCommand
-XX:CompileCommand
小胖子编程 发表于9个月前
-XX:CompileCommand
  • 发表于 9个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

用法:-XX:CompileCommand=_ 例子: -XX:CompileCommand=exclude,com/app/App,test -XX:CompileCommand=exclude,com.app.App::test -XX:CompileCommand=exclude,com/app/App::test 表示com.app.App.test这个方法将不会进行jit编译,一直解释执行,从而绕过jit相关的bug

当JVM crash的时候,查看error log:

  
---------------  T H R E A D  ---------------  
  
Current thread (0x00002aab4803e800):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=28511, stack(0x0000000040d0d000,0x0000000040e0e000)]  
  
siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x000000000000002c  
  
Current CompileTask:  
C2:171% !   
com.app.App.test(Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; @ 56 (492 bytes)  
  

当在错误日志中显示“the Current thread is a JavaThread named CompilerThread0, CompilerThread1, or AdapterCompiler”时,可能是触发了JVM的编译器的BUG导致的。

此时需要去掉JIT编译优化,那么就需要用到上面的参数,在启动参数中加上-XX:CompileCommand=exclude,com/app/App::test,使得导致crash的方法不进行编译优化。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 9
码字总数 9126
×
小胖子编程
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: