Это не то, что вы обычно волнует, как правило, вы хотите, чтобы избежать рекурсии в Java, как с помощью цикла, как правило, более эффективно (Java не хвостовая оптимизация, например)
В Linux вы можете работать это получается путем чтения /proc/self/maps
, который имеет все карты памяти, используемые программой, и есть запись для каждого стека.
например. В этом примере вы можете увидеть область стека для нити 669 и 668
7ff4617ee000-7ff4617f1000 ---p 00000000 00:00 0
7ff4617f1000-7ff4618ef000 rw-p 00000000 00:00 0 [stack:669]
7ff4618ef000-7ff4618f2000 ---p 00000000 00:00 0
7ff4618f2000-7ff461bf0000 rw-p 00000000 00:00 0 [stack:668]
Размер этого диапазона в шестнадцатеричном является 0xFE000
или 1040384, который составляет почти 1 Мбайт.
Но показывает ли он размер стека? –
Память не кучи - это не что иное, как стек. –
Я всегда, хотя не куча включала прямую память, компоненты gui, память, используемую jvm для внутренней обработки и т. Д. –