启动游戏玩不了多久就报内存泄露
### 游戏信息游戏版本: 0.97a-RC11
### 系统信息
操作系统:Microsoft Windows 10 家庭中文版
版本:10.0.19045 暂缺 Build 19045
总可用内存:`15.88G`
**警告:未找到游戏默认Java运行时**
虚拟机参数:java.exe -XX:CompilerThreadPriority=1 -XX:+CompilerThreadHintNoPreempt -Xverify:none -XX:+AggressiveOpts -Djava.library.path=native\\windows -XX:+UseShenandoahGC -XX:+DisableExplicitGC -XX:CompileCommand=exclude,com.fs.starfarer.combat.ai.O0OO::Ò00000 -XX:CompileCommand=exclude,com.fs.starfarer.api.impl.campaign.terrain.AuroraRenderer::render -XX:CompileCommand=exclude,com.fs.starfarer.combat.ai.movement.maneuvers.StrafeTargetManeuverV2::o00000 -XX:+PrintGCDateStamps -Xloggc:jvm.log -Xms8g -Xmx8g -Xss2048k -classpath janino.jar;commons-compiler.jar;commons-compiler-jdk.jar;starfarer.api.jar;starfarer_obf.jar;jogg-0.0.7.jar;jorbis-0.0.15.jar;json.jar;lwjgl.jar;jinput.jar;log4j-1.2.9.jar;lwjgl_util.jar;fs.sound_obf.jar;fs.common_obf.jar;xstream-1.4.10.jar -Dcom.fs.starfarer.settings.paths.saves=..\\saves -Dcom.fs.starfarer.settings.paths.screenshots=..\\screenshots -Dcom.fs.starfarer.settings.paths.mods=..\\mods -Dcom.fs.starfarer.settings.paths.logs=. com.fs.starfarer.StarfarerLauncher
堆栈初始大小(`-Xms`):`8192m`
堆栈最大大小(`-Xmx`):`8192m`
### Mod信息
|Mod名称 |Mod版本 |已启用 |
|-|-|-|
|LazyLib |2.8b |是 |
|zz GraphicsLib |1.9.0 |是 |
|MagicLib |1.4.6 |是 |
|Console Commands |2024.10.04|是 |
|星海集群 |1.13.1b |是 |
|星际帝国 |2.6.4 |是 |
|泰兰船包 |1.3 |是 |
|海盗拓展 |1.8.3 |是 |
|羊头航务局 |1.9.10|是 |
|舰船/武器拓展 |1.15.1|是 |
|重生 |2.3.0 |是 |
(以上内容由 远行星号 报错信息收集工具 自动生成,生成工具版本 `1.1.2`).
参照这个帖子更新了java8和vmparams之后游戏确实流畅了很多,但是总是报内存泄露需要手动保存游戏
等下,虚拟机参数里面怎么会有一个表情符号{:tieba_30:} 奇怪,文件里面又是正常的
填8192试试 如果你是打开游戏后第一次加载存档就报告内存泄漏,那就是你的vmparams的内存回收参数有问题,还原回原版的参数,仅修改内存大小部分就能解决
如果你是在生涯中进行了SL,那属于正常情况,这种内存泄漏大概率是mod在插件或者每帧代码中直接通过变量形式保存了生涯中的类似舰队、星球等物件导致的,除非mod作者意识到并解决该问题,否则无法避免 搞毛线 发表于 2024-12-1 11:41
填8192试试
没用,还是会报错 cjy4312 发表于 2024-12-1 11:41
如果你是打开游戏后第一次加载存档就报告内存泄漏,那就是你的vmparams的内存回收参数有问题,还原回原版的 ...
mod我就开了那几个,应该不至于吧。vmparams换回原版的也没用,根本开不了游戏,把jre文件也换回去才行 我想,你可以尝试一步到位更新到java23试一试
现在论坛的java8教程最好只视为游戏大版本较低时(如0951)的permsize报错解决方法,不应该再视为有效的游戏优化方法
尤其是在java8使用ShenandoahGC的一些改动,在远行星号的国际社区已经被放弃很久了,所以尽量不要再使用
论坛版本的ShenandoahGC很多人报告过错误,错误的种类还很多样,不排除是他导致的内存问题 Tick_Tock_Man 发表于 2024-12-2 17:40
我想,你可以尝试一步到位更新到java23试一试
现在论坛的java8教程最好只视为游戏大版本较低时(如0951)的 ...
好吧,看来只有这个办法了,谢谢 Alex:代码的事你别多管( 这破游戏内存泄漏严重的一塌糊涂{:tieba_30:},调多少G都救不了,我每次舰队战斗两三次(哪怕模拟战)后必报内存泄漏,唯一能救的就是玩低版本+少打mod。。。 Tick_Tock_Man 发表于 2024-12-2 17:40
我想,你可以尝试一步到位更新到java23试一试
现在论坛的java8教程最好只视为游戏大版本较低时(如0951)的 ...
其实J23用的也是Shenandoah {:5_127:} majiayi5 发表于 2025-3-25 21:17
这破游戏内存泄漏严重的一塌糊涂,调多少G都救不了,我每次舰队战斗两三次(哪怕模拟战)后必报内存泄漏,唯 ...
升级Java 23试一试,此外过度分配会有反效果。游戏一些应用(尤其是音乐和材质图)会占用你分配内存以外的内存。因此分配过多内存会挤压这些东西所需的内存空间,造成游戏反而不稳定。
而且游戏本身与其说是内存泄漏严重不如说是垃圾清理效率极低 (当然有些mod确实有内存泄漏风险),所以目前的几个主要优化例如论坛的旧Java8,还有Miko的Java23、24都是从这边入手的。我用J23分配4G都是足够的。 本帖最后由 Tick_Tock_Man 于 2025-3-27 10:15 编辑
Mycophobia 发表于 2025-3-27 06:37
其实J23用的也是Shenandoah
我完全同意你的意见!我自己也用过j8的Shenandoah,我当时回这个贴的意思是
论坛有一个使用redhat j8 Shenandoah的“教程”(用户id为wuyi或其他类似id),在当时“教程”贴里就有许多人汇报错误,和miko在官坛早年发的正常调整过的Shenandoah不应当混为一谈。同时,在发这个回复的时点,miko已经快把j24弄出来了,j8在英文论坛也已经是过期物
因此出于楼主运行环境的问题,审慎建议楼主使用正规、正常开发者的后续产品 Tick_Tock_Man 发表于 2025-3-27 10:05
我完全同意你的意见!我自己也用过j8的Shenandoah,我当时回这个贴的意思是
论坛有一个使用redhat j8 Shen ...
呜啊你回复这么正式让我好难为情www
我只是打算卖个萌而已。也感谢时钟佬一直以来的排查回答问题{:tieba_01:}
页:
[1]