当我运行一个有NLP库的java类时,我得到了这个错误....
Error occurred during initialization of VM
Incompatible initial and maximum heap sizes specified
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么能解决这个错误:)
网上的大部分地方,我得到以下有关堆参数的信息
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
这是我提到-Xms 512M -Xmx 2048M参数时的理解/问题,
-Xms :-我的理解是,如果我的 java 进程实际上只需要 200M ,提到 -Xms 512M ,java 进程仍将只分配 200M(需要实际内存)而不是 500M 。但是,如果我已经知道我的应用程序将在启动时占用这 512M 内存,那么指定小于会对性能产生影响,因为无论如何需要调整堆块大小,这是一项代价高昂的操作。
根据与我的同事的讨论,默认情况下 GC 将在 Xms 值的 60% 上触发。那是对的吗 ?如果是,是依赖 Xms 值的次要 GC 还是完整 GC?
Xms 更新:- 在读取JVM 堆参数后这似乎是正确的,但默认情况下值再次为 60%,它是依赖于 Xms 值的次要 GC 还是完整 GC?
-Xmx:-我的理解是提到了 -Xmx 2048M ,java 进程实际上会保留 2048M 内存供操作系统使用,这样另一个进程就无法获得它的份额。如果 java 进程无论如何需要超过 2048M 的内存,那么内存不足会被抛出。
此外,我相信 Full GC 触发器与 -Xmx 的值存在某种关系。因为我观察到的是当内存接近 Xmx …