为什么需要指定 Java 堆大小?
2022-09-02 13:34:32
我一直想知道,为什么Java需要你手动设置堆大小?我的印象是,用其他语言编写的程序只会在程序运行时分配尽可能多的内存,直到操作系统无法再分配为止。
在Java世界中,我们需要设置堆,堆栈和permgen大小。虽然这很简单,但忘记将这些数字增加到“足够大”的数字是我看到服务器出现故障的#1原因。
为什么不能告诉Java随着时间的推移尽可能多地增长堆/堆栈/permgen?
我一直想知道,为什么Java需要你手动设置堆大小?我的印象是,用其他语言编写的程序只会在程序运行时分配尽可能多的内存,直到操作系统无法再分配为止。
在Java世界中,我们需要设置堆,堆栈和permgen大小。虽然这很简单,但忘记将这些数字增加到“足够大”的数字是我看到服务器出现故障的#1原因。
为什么不能告诉Java随着时间的推移尽可能多地增长堆/堆栈/permgen?
原因三:
我的解释是,Sun是一家专注于销售Big Boxes的公司,他们喜欢系统管理员可以在这些盒子上做事。运行系统以填充所有内存是将其运行到地下并且无法有效地采取措施来恢复操作的好方法,因为您无法分配内存来创建登录shell等。