MemorySweep

MemorySweep

157k Downloads

服务器输出Onfailed什么什么GC

DarkgreenWorld opened this issue · 4 comments

commented

总之就是说GC失败了,然后我看内存清理的效果也不明显,还有就是指令用不了,来问问作者大大怎么办。

commented

总之就是说GC失败了,然后我看内存清理的效果也不明显,还有就是指令用不了,来问问作者大大怎么办。

1.20的内存清理机制是很保守的,求稳为主。清理时会获取10秒内的平均内存占用,只有达到了分配内存的最大值的75%(默认)才会清理。所以通常很难触发。(按咱的想法,达不到这种场景应该内存是不太需要清理的,不然徒增卡顿那么一下嘛)
以及就是如果用的zgc则是完全不会触发,因为zgc的清理十分积极,显式gc是非常多余的。

至于指令嘛...看了下,咱忘记做了,有空补上吧。

如果需要经典的gc机制的话,咱可以补上一个

commented

我在自己电脑上运行和在服务器运行时唯一的区别就是,本地我给的启动参数里最小最大内存是一致的,而服务器上受限于提供商不让我修改的缘故两个不一致。

commented

试验了一下午,证明了您的模组在服务端基本是无效的(悲)。
MC的服务端,至少我用的这个,的致命问题就是不会从内存中卸载不再使用的区块数据等(至少是清理的远少于新使用的),导致内存越占越大,最后崩服。本来期望用您的模组解决,可惜无效。
不过我觉得Mojang和Forge团队不可能连这种基本的事情都不解决,而且我在自己的电脑上运行服务器时似乎是没出现过这个问题的(不确定)。

commented

刚才又试了一下,在本地运行时内存占用似乎基本不会超过6GB,有一定的内存清理能力。
也许是因为云端运行时玩家比较多,才导致清理内存的能力跟不上内存的使用。不过即使这样看,MC清理内存的效率也太差了。