• JVM -Xss调整Stack Space的大小 【转】


    Java程序中,每个线程都有自己的Stack Space。这个Stack Space不是来自Heap的分配。所以Stack Space的大小不会受到-Xmx和-Xms的影响,这2个JVM参数仅仅是影响Heap的大小。

    Stack Space用来做方法的递归调用时压入Stack Frame。所以当递归调用太深的时候,就有可能耗尽Stack Space,爆出StackOverflow的错误。Stack Space的大小随着OS,JVM以及环境变量的大小而发生变化。一般说来默认的大小是512K。在64位的系统中,这个Stack Space值会更大。一般说来,Stack Space为128K是够用的。这时你说需要做的就是观察。如果你的程序没有爆出StackOverflow的错误,可以使用-Xss来调整Stack Space的大小为128K。(eg:-Xss128K)

    package org.thinking.jvm;
    
    public class TestXSS {
    
        private static long count = 0;
        
        public static void main(String[] args) {
            infinitelyRecursiveMethod(1);
    
        }
        
        public static void infinitelyRecursiveMethod(long a){
            System.out.println(count++);
            infinitelyRecursiveMethod(a);
        }
    
    }

    通过上面的程序,你可以观察到你的JVM Stack Space是如何耗尽的,以及进入嵌套的层深。

  • 相关阅读:
    Android 请求运行时权限
    Android 调试技巧之快速重启生效
    ubuntu 用aptitude代替apt-get处理依赖性问题
    Learning Git by Animations
    Android调试技巧
    Android O PackageInstaller 解析
    阅读代码工具:Visual Studio Code
    Android 缓存策略demo
    |= 和 &= ~
    Android 逆向工具
  • 原文地址:https://www.cnblogs.com/happyPawpaw/p/4442335.html
Copyright © 2020-2023  润新知