JVM栈内存分配

灰太狼 2022-05-16 08:06 377阅读 0赞

栈内存分配

-Xss
配置线程的最大栈空间
这个参数,决定了函数可调用的最大深度

  1. package com.bjsxt.base001;
  2. public class Test04 {
  3. //-Xss1m
  4. //-Xss5m
  5. //栈调用深度
  6. private static int count;
  7. public static void recursion(){
  8. count++;
  9. recursion();
  10. }
  11. public static void main(String[] args){
  12. try {
  13. recursion();
  14. } catch (Throwable t) {
  15. System.out.println("调用最大深入:" + count);
  16. t.printStackTrace();
  17. }
  18. }
  19. }

程序分析
递归调用,每次调用加1

测试

第一次配置
-Xss1m
最大调用深度,23096
这里写图片描述
第二次配置
-Xss5m
最大调用深度,293003
这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,377人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JVM内存分配机制

    Java虚拟机最重要的工作就是如何给对象分配内存空间,以及通过GC如何回收已经不再使用的内存空间。这篇文章主要介绍JVM中的Java对象是创建过程、对象内存的分配机制以及对象内

    相关 JVM内存分配策略

    1、对象优先在Eden分配 大多情况,对象在新生代Eden区分配。当Eden区没有足够空间进行分配时,虚拟机将进行一次Minor GC。虚拟机提供了参数 -XX:+Pri