PermGen空间在Java中的意义是什么?
PermGen空间在Java中的意义是什么?
PermGen空间保留长期对象,主要是由ClassLoader
加载的Class
对象。除非在特殊情况下(即加载这些类的ClassLoader
超出作用域时),否则PermGen不会被垃圾回收。
这是一种垃圾回收优化 - 如果我们不希望垃圾回收的对象被单独存储,它会压缩其余对象存储的空间,从而减少垃圾收集器的工作量。
String
和Object
。这是JVM本地实现的一部分,因此关于“在哪里”的标准答案并不存在。 - danben你需要知道的唯一一件事就是PermGen空间与常规堆空间是分开的,并不受-Xmx
VM参数的影响。如果你有一个加载了许多类定义的应用程序(比如应用服务器或IDE),那么可以使用-XX:MaxPermSize
VM选项来设置PermGen空间大小。
java.lang.OutOfMemoryError: PermGen
错误。这与-Xmx设置或机器上可用的内存大小无关。要设置新的初始大小,请使用-XX:PermSize=64m
。要设置最大大小,请使用-XX:MaxPermSize=128m
。