紫韵 发表于 2024-12-1 11:03:35

启动游戏玩不了多久就报内存泄露

### 游戏信息

游戏版本:                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之后游戏确实流畅了很多,但是总是报内存泄露需要手动保存游戏



紫韵 发表于 2024-12-1 11:06:46

等下,虚拟机参数里面怎么会有一个表情符号{:tieba_30:}

紫韵 发表于 2024-12-1 11:11:57

奇怪,文件里面又是正常的

搞毛线 发表于 2024-12-1 11:41:08

填8192试试

cjy4312 发表于 2024-12-1 11:41:49

如果你是打开游戏后第一次加载存档就报告内存泄漏,那就是你的vmparams的内存回收参数有问题,还原回原版的参数,仅修改内存大小部分就能解决
如果你是在生涯中进行了SL,那属于正常情况,这种内存泄漏大概率是mod在插件或者每帧代码中直接通过变量形式保存了生涯中的类似舰队、星球等物件导致的,除非mod作者意识到并解决该问题,否则无法避免

紫韵 发表于 2024-12-2 16:20:50

搞毛线 发表于 2024-12-1 11:41
填8192试试

没用,还是会报错

紫韵 发表于 2024-12-2 16:23:00

cjy4312 发表于 2024-12-1 11:41
如果你是打开游戏后第一次加载存档就报告内存泄漏,那就是你的vmparams的内存回收参数有问题,还原回原版的 ...

mod我就开了那几个,应该不至于吧。vmparams换回原版的也没用,根本开不了游戏,把jre文件也换回去才行

Tick_Tock_Man 发表于 2024-12-2 17:40:25

我想,你可以尝试一步到位更新到java23试一试
现在论坛的java8教程最好只视为游戏大版本较低时(如0951)的permsize报错解决方法,不应该再视为有效的游戏优化方法
尤其是在java8使用ShenandoahGC的一些改动,在远行星号的国际社区已经被放弃很久了,所以尽量不要再使用
论坛版本的ShenandoahGC很多人报告过错误,错误的种类还很多样,不排除是他导致的内存问题

紫韵 发表于 2024-12-4 00:03:26

Tick_Tock_Man 发表于 2024-12-2 17:40
我想,你可以尝试一步到位更新到java23试一试
现在论坛的java8教程最好只视为游戏大版本较低时(如0951)的 ...

好吧,看来只有这个办法了,谢谢

forrevenge 发表于 2024-12-4 02:46:27

Alex:代码的事你别多管(

majiayi5 发表于 2025-3-25 21:17:46

这破游戏内存泄漏严重的一塌糊涂{:tieba_30:},调多少G都救不了,我每次舰队战斗两三次(哪怕模拟战)后必报内存泄漏,唯一能救的就是玩低版本+少打mod。。。

Mycophobia 发表于 2025-3-27 06:37:18

Tick_Tock_Man 发表于 2024-12-2 17:40
我想,你可以尝试一步到位更新到java23试一试
现在论坛的java8教程最好只视为游戏大版本较低时(如0951)的 ...

其实J23用的也是Shenandoah {:5_127:}

Mycophobia 发表于 2025-3-27 06:40:31

majiayi5 发表于 2025-3-25 21:17
这破游戏内存泄漏严重的一塌糊涂,调多少G都救不了,我每次舰队战斗两三次(哪怕模拟战)后必报内存泄漏,唯 ...

升级Java 23试一试,此外过度分配会有反效果。游戏一些应用(尤其是音乐和材质图)会占用你分配内存以外的内存。因此分配过多内存会挤压这些东西所需的内存空间,造成游戏反而不稳定。

而且游戏本身与其说是内存泄漏严重不如说是垃圾清理效率极低 (当然有些mod确实有内存泄漏风险),所以目前的几个主要优化例如论坛的旧Java8,还有Miko的Java23、24都是从这边入手的。我用J23分配4G都是足够的。

Tick_Tock_Man 发表于 2025-3-27 10:05:12

本帖最后由 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在英文论坛也已经是过期物
因此出于楼主运行环境的问题,审慎建议楼主使用正规、正常开发者的后续产品

Mycophobia 发表于 2025-3-28 06:09:13

Tick_Tock_Man 发表于 2025-3-27 10:05
我完全同意你的意见!我自己也用过j8的Shenandoah,我当时回这个贴的意思是
论坛有一个使用redhat j8 Shen ...

呜啊你回复这么正式让我好难为情www

我只是打算卖个萌而已。也感谢时钟佬一直以来的排查回答问题{:tieba_01:}
页: [1]
查看完整版本: 启动游戏玩不了多久就报内存泄露