我有一个可能很愚蠢的问题。我目前正在测试 CSP 求解器 choco 和 jacop。当我运行应用程序分析(图形着色,大约 3000 个节点)时,我不完全理解结果。
profiler 声明的已用堆空间约为 1GB 内存。创建的所有对象的总和小于 100MB。其他 900MB 的 RAM 在哪里?
我认为方法调用(求解器可能使用大量回溯)被分配在堆栈上,所以这不应该是问题所在。当我使用 Xmx 参数减少最大内存时,应用程序失败并出现异常:
线程“主”java.lang.OutOfMemoryError 中的异常:超出 GC 开销限制
所以看起来,其余的不是未使用的未收集内存(因为在这种情况下,GC 会释放它(并且不会失败))。
谢谢你的帮助。