Skip to content

Commit 8faba76

Browse files
committed
up 修改GC参数设置
整理语言文件
1 parent f19ed13 commit 8faba76

35 files changed

Lines changed: 259 additions & 287 deletions

src/ColorMC.Core/Config/ConfigSave.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private static void Save()
9696
}
9797
catch (Exception e)
9898
{
99-
Logs.Error(LanguageHelper.Get("Core.Config.Error2"), e);
99+
Logs.Error(LanguageHelper.Get("Core.Error2"), e);
100100
}
101101
}
102102
}

src/ColorMC.Core/Config/ConfigUtils.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ internal static void Init()
3636
/// <returns>是否加载成功</returns>
3737
public static bool Load(string local, bool quit = false)
3838
{
39-
Logs.Info(LanguageHelper.Get("Core.Config.Info1"));
39+
Logs.Info(LanguageHelper.Get("Core.Info4"));
4040

4141
using var data = PathHelper.OpenRead(local);
4242
ConfigObj? obj = null;
@@ -60,7 +60,7 @@ public static bool Load(string local, bool quit = false)
6060
}
6161
catch (Exception e)
6262
{
63-
ColorMCCore.OnError(LanguageHelper.Get("Core.Config.Error1"), e, true);
63+
ColorMCCore.OnError(LanguageHelper.Get("Core.Error1"), e, true);
6464
}
6565
}
6666

@@ -71,7 +71,7 @@ public static bool Load(string local, bool quit = false)
7171
{
7272
return false;
7373
}
74-
Logs.Warn(LanguageHelper.Get("Core.Config.Warn1"));
74+
Logs.Warn(LanguageHelper.Get("Core.Info6"));
7575

7676
Config = MakeDefaultConfig();
7777
}
@@ -107,7 +107,7 @@ public static bool Load(string local, bool quit = false)
107107
/// </summary>
108108
public static void Save()
109109
{
110-
Logs.Info(LanguageHelper.Get("Core.Config.Info2"));
110+
Logs.Info(LanguageHelper.Get("Core.Info5"));
111111
ConfigSave.AddItem(ConfigSaveObj.Build(Names.NameConfigFile, s_local, Config, JsonType.ConfigObj));
112112
}
113113

@@ -116,7 +116,7 @@ public static void Save()
116116
/// </summary>
117117
public static void SaveNow()
118118
{
119-
Logs.Info(LanguageHelper.Get("Core.Config.Info2"));
119+
Logs.Info(LanguageHelper.Get("Core.Info5"));
120120
File.WriteAllText(s_local, JsonUtils.ToString(Config, JsonType.ConfigObj));
121121
}
122122

src/ColorMC.Core/Downloader/DownloadManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ private static Task<bool> StartAsync(ICollection<FileItemObj> list, DownloadArg
159159
var task = new DownloadTask(arg);
160160
s_tasks.Add(task);
161161

162-
Logs.Info(LanguageHelper.Get("Core.Http.Info4"));
162+
Logs.Info(LanguageHelper.Get("Core.Info9"));
163163

164164
var names = new List<string>();
165165
//装填下载内容
@@ -192,7 +192,7 @@ private static Task<bool> StartAsync(ICollection<FileItemObj> list, DownloadArg
192192
private static void InitThread()
193193
{
194194
Stop();
195-
Logs.Info(string.Format(LanguageHelper.Get("Core.Http.Info1"), ConfigUtils.Config.Http!.DownloadThread));
195+
Logs.Info(string.Format(LanguageHelper.Get("Core.Info8"), ConfigUtils.Config.Http!.DownloadThread));
196196
for (int a = 0; a < ConfigUtils.Config.Http.DownloadThread; a++)
197197
{
198198
s_threads.Add(new DownloadThread(a));

src/ColorMC.Core/Downloader/DownloadThread.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private static int GetCopyBufferSize(Stream stream)
5151
/// <param name="e">错误内容</param>
5252
private static void Error(FileItemObj item, Exception e)
5353
{
54-
Logs.Error(string.Format(LanguageHelper.Get("Core.Http.Error1"), item.Name), e);
54+
Logs.Error(string.Format(LanguageHelper.Get("Core.Error4"), item.Name), e);
5555
}
5656

5757
/// <summary>
@@ -263,7 +263,7 @@ private bool Download(DownloadItem item, string file, byte[] buffer, Stream stre
263263
{
264264
item.File.State = DownloadItemState.Error;
265265
item.Task.UpdateItem(_index, item.File);
266-
Error(item.File, new Exception(LanguageHelper.Get("Core.Http.Error10")));
266+
Error(item.File, new Exception(LanguageHelper.Get("Core.Error12")));
267267
return true;
268268
}
269269
if (!string.IsNullOrWhiteSpace(item.File.Md5))
@@ -273,7 +273,7 @@ private bool Download(DownloadItem item, string file, byte[] buffer, Stream stre
273273
{
274274
item.File.State = DownloadItemState.Error;
275275
item.Task.UpdateItem(_index, item.File);
276-
Error(item.File, new Exception(LanguageHelper.Get("Core.Http.Error10")));
276+
Error(item.File, new Exception(LanguageHelper.Get("Core.Error12")));
277277
return true;
278278
}
279279
}
@@ -284,7 +284,7 @@ private bool Download(DownloadItem item, string file, byte[] buffer, Stream stre
284284
{
285285
item.File.State = DownloadItemState.Error;
286286
item.Task.UpdateItem(_index, item.File);
287-
Error(item.File, new Exception(LanguageHelper.Get("Core.Http.Error10")));
287+
Error(item.File, new Exception(LanguageHelper.Get("Core.Error12")));
288288
return true;
289289
}
290290
}
@@ -295,7 +295,7 @@ private bool Download(DownloadItem item, string file, byte[] buffer, Stream stre
295295
{
296296
item.File.State = DownloadItemState.Error;
297297
item.Task.UpdateItem(_index, item.File);
298-
Error(item.File, new Exception(LanguageHelper.Get("Core.Http.Error10")));
298+
Error(item.File, new Exception(LanguageHelper.Get("Core.Error12")));
299299
return true;
300300
}
301301
}

src/ColorMC.Core/Game/GameArg.cs

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -418,9 +418,10 @@ private static List<string> MakeGameArg(this GameSettingObj obj, SaveObj? world,
418418
/// </summary>
419419
/// <param name="obj">游戏实例</param>
420420
/// <param name="login">登录的账户</param>
421+
/// <param name="java">JAVA主版本</param>
421422
/// <param name="mixinport">注入通信端口</param>
422423
/// <returns>Jvm参数</returns>
423-
private static async Task<(List<string>, bool)> MakeJvmArgAsync(this GameSettingObj obj, LoginObj login, int? mixinport = null)
424+
private static async Task<JvmArgRes> MakeJvmArgAsync(this GameSettingObj obj, LoginObj login, int java, int? mixinport = null)
424425
{
425426
RunArgObj? args;
426427

@@ -433,7 +434,6 @@ private static List<string> MakeGameArg(this GameSettingObj obj, SaveObj? world,
433434
args = new RunArgObj
434435
{
435436
JvmArgs = obj.JvmArg.JvmArgs ?? ConfigUtils.Config.DefaultJvmArg.JvmArgs,
436-
GCArgument = obj.JvmArg.GCArgument ?? ConfigUtils.Config.DefaultJvmArg.GCArgument,
437437
GC = obj.JvmArg.GC ?? ConfigUtils.Config.DefaultJvmArg.GC,
438438
JavaAgent = obj.JvmArg.JavaAgent ?? ConfigUtils.Config.DefaultJvmArg.JavaAgent,
439439
MaxMemory = obj.JvmArg.MaxMemory ?? ConfigUtils.Config.DefaultJvmArg.MaxMemory,
@@ -460,24 +460,28 @@ private static List<string> MakeGameArg(this GameSettingObj obj, SaveObj? world,
460460
jvm.Add($"-javaagent:{GameHelper.ColorMCASM.Local}");
461461
}
462462

463+
var gc = args.GC;
464+
465+
if (gc == GCType.Auto)
466+
{
467+
if (java >= 21)
468+
{
469+
gc = GCType.ZGC;
470+
}
471+
else
472+
{
473+
gc = GCType.G1GC;
474+
}
475+
}
476+
463477
//gc
464-
switch (args.GC)
478+
switch (gc)
465479
{
466480
case GCType.G1GC:
467-
jvm.Add("-XX:+UseG1GC");
481+
jvm.AddRange(Names.NameGCArgG1GC);
468482
break;
469-
case GCType.SerialGC:
470-
jvm.Add("-XX:+UseSerialGC");
471-
break;
472-
case GCType.ParallelGC:
473-
jvm.Add("-XX:+UseParallelGC");
474-
break;
475-
case GCType.CMSGC:
476-
jvm.Add("-XX:+UseConcMarkSweepGC");
477-
break;
478-
case GCType.User:
479-
if (!string.IsNullOrWhiteSpace(args.GCArgument))
480-
jvm.Add(args.GCArgument.Trim());
483+
case GCType.ZGC:
484+
jvm.AddRange(Names.NameGCZGC);
481485
break;
482486
}
483487

@@ -540,7 +544,11 @@ private static List<string> MakeGameArg(this GameSettingObj obj, SaveObj? world,
540544
jvm.Add($"-Dcolormc.game.version={obj.Version}");
541545
jvm.Add($"-Dcolormc.game.dir={obj.GetGamePath()}");
542546

543-
return (jvm, useasm);
547+
return new JvmArgRes
548+
{
549+
Args = jvm,
550+
Asm = useasm
551+
};
544552
}
545553

546554
/// <summary>
@@ -712,13 +720,6 @@ public static async Task<GameLaunchObj> MakeArgAsync(this GameSettingObj obj, Ga
712720
{
713721
var arg = new GameLaunchObj();
714722

715-
//创建启动器自定义jvmarg
716-
var jvmarg = await obj.MakeJvmArgAsync(arg1.Auth, arg1.Mixinport);
717-
//创建启动器自定义gamearg
718-
var gamearg = obj.MakeGameArg(arg1.World, arg1.Server);
719-
720-
arg.UseColorMCASM = jvmarg.Item2;
721-
722723
void DoLibItem(FileItemObj item)
723724
{
724725
if (!string.IsNullOrWhiteSpace(item.Local))
@@ -861,7 +862,13 @@ await Task.Run(async () =>
861862
arg.JvmArgs.AddRange(MakeLoaderJvmArg(v2, obj));
862863
}
863864

864-
arg.JvmArgs.AddRange(jvmarg.Item1);
865+
//创建启动器自定义jvmarg
866+
var jvmarg = await obj.MakeJvmArgAsync(arg1.Auth, arg.JavaVersions.First(), arg1.Mixinport);
867+
//创建启动器自定义gamearg
868+
var gamearg = obj.MakeGameArg(arg1.World, arg1.Server);
869+
arg.UseColorMCASM = jvmarg.Asm;
870+
871+
arg.JvmArgs.AddRange(jvmarg.Args);
865872

866873
if (obj.JvmArg?.RemoveGameArg != true)
867874
{
@@ -1042,7 +1049,13 @@ await Task.Run(async () =>
10421049
arg.JvmArgs.AddRange(s_v1JvmArg);
10431050
}
10441051

1045-
arg.JvmArgs.AddRange(jvmarg.Item1);
1052+
//创建启动器自定义jvmarg
1053+
var jvmarg = await obj.MakeJvmArgAsync(arg1.Auth, arg.JavaVersions.First(), arg1.Mixinport);
1054+
//创建启动器自定义gamearg
1055+
var gamearg = obj.MakeGameArg(arg1.World, arg1.Server);
1056+
arg.UseColorMCASM = jvmarg.Asm;
1057+
1058+
arg.JvmArgs.AddRange(jvmarg.Args);
10461059
arg.GameArgs.AddRange(gamearg);
10471060

10481061
//log4j2-xml

src/ColorMC.Core/Helpers/AuthlibHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public static async Task<MakeDownloadItemRes> ReadyNide8Async(CancellationToken
113113
}
114114
catch (Exception e)
115115
{
116-
Logs.Error(LanguageHelper.Get("Core.Http.Error8"), e);
116+
Logs.Error(LanguageHelper.Get("Core.Error11"), e);
117117
return new MakeDownloadItemRes
118118
{
119119
State = false
@@ -235,7 +235,7 @@ public static async Task<MakeDownloadItemRes> ReadyAuthlibInjectorAsync(Cancella
235235
}
236236
catch (Exception e)
237237
{
238-
Logs.Error(LanguageHelper.Get("Core.Http.Error11"), e);
238+
Logs.Error(LanguageHelper.Get("Core.Error13"), e);
239239
return new MakeDownloadItemRes
240240
{
241241
State = false

src/ColorMC.Core/Helpers/ConfigHelper.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ public static RunArgObj Copy(this RunArgObj arg)
1818
{
1919
JvmArgs = arg.JvmArgs,
2020
GameArgs = arg.GameArgs,
21-
GCArgument = arg.GCArgument,
2221
JvmEnv = arg.JvmEnv,
2322
GC = arg.GC,
2423
JavaAgent = arg.JavaAgent,

src/ColorMC.Core/Helpers/GameDownloadHelper.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ public static async Task<ConcurrentBag<FileItemObj>> BuildGameLibsAsync(this Gam
666666
}
667667
catch (Exception e)
668668
{
669-
ColorMCCore.OnError(LanguageHelper.Get("Core.Http.Forge.Error4"), e, false);
669+
ColorMCCore.OnError(LanguageHelper.Get("Core.Error18"), e, false);
670670
return null;
671671
}
672672

@@ -707,7 +707,7 @@ public static async Task<ConcurrentBag<FileItemObj>> BuildGameLibsAsync(this Gam
707707
}
708708
catch (Exception e)
709709
{
710-
Logs.Error(LanguageHelper.Get("Core.Http.Forge.Error1"), e);
710+
Logs.Error(LanguageHelper.Get("Core.Error15"), e);
711711
return null;
712712
}
713713

@@ -729,7 +729,7 @@ public static async Task<ConcurrentBag<FileItemObj>> BuildGameLibsAsync(this Gam
729729
}
730730
catch (Exception e)
731731
{
732-
Logs.Error(LanguageHelper.Get("Core.Http.Forge.Error2"), e);
732+
Logs.Error(LanguageHelper.Get("Core.Error16"), e);
733733
return null;
734734
}
735735

@@ -796,7 +796,7 @@ public static async Task<ConcurrentBag<FileItemObj>> BuildGameLibsAsync(this Gam
796796
}
797797
catch (Exception e)
798798
{
799-
Logs.Error(LanguageHelper.Get("Core.Http.Forge.Error3"), e);
799+
Logs.Error(LanguageHelper.Get("Core.Error17"), e);
800800
return null;
801801
}
802802
}
@@ -1152,7 +1152,7 @@ async Task GetDownloadAsync(ForgeLaunchObj.ForgeLibrariesObj item)
11521152
}
11531153
catch (Exception e)
11541154
{
1155-
Logs.Error(LanguageHelper.Get("Core.Http.Forge.Error3"), e);
1155+
Logs.Error(LanguageHelper.Get("Core.Error17"), e);
11561156
}
11571157

11581158
return new MakeDownloadNameItemsRes

src/ColorMC.Core/Helpers/LanguageHelper.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,10 @@ public static string GetName(this GCType state)
217217
{
218218
return state switch
219219
{
220+
GCType.Auto => Get("Type.GCType.Auto"),
220221
GCType.G1GC => Get("Type.GCType.G1GC"),
221-
GCType.SerialGC => Get("Type.GCType.SerialGC"),
222-
GCType.ParallelGC => Get("Type.GCType.ParallelGC"),
223-
GCType.CMSGC => Get("Type.GCType.CMSGC"),
224-
GCType.User => Get("Type.GCType.User"),
222+
GCType.ZGC => Get("Type.GCType.ZGC"),
223+
GCType.None => Get("Type.GCType.None"),
225224
_ => Get("Type.GCType.Other")
226225
};
227226
}

src/ColorMC.Core/Names.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,20 @@ public static class Names
119119
public const string NameNeoTomlFile = "META-INF/neoforge.mods.toml";
120120
public const string NameNeoToml1File = "neoforge.mods.toml";
121121
public const string NameModJarJarDir = "META-INF/jarjar/";
122+
123+
public static readonly string[] NameGCArgG1GC =
124+
[
125+
"-XX:+UseG1GC",
126+
"-XX:MaxGCPauseMillis=200",
127+
"-XX:G1NewSizePercent=30",
128+
"-XX:G1MaxNewSizePercent=40",
129+
"-XX:InitiatingHeapOccupancyPercent=35",
130+
"-XX:ConcGCThreads=4",
131+
"-XX:ParallelGCThreads=8"
132+
];
133+
public static readonly string[] NameGCZGC =
134+
[
135+
"-XX:+UseZGC",
136+
"-XX:+ZGenerational"
137+
];
122138
}

0 commit comments

Comments
 (0)