gpt4 book ai didi

c# - 为什么程序集的调用占用如此多的 RAM?

转载 作者:行者123 更新时间:2023-11-30 22:36:46 26 4
gpt4 key购买 nike

我成功地从字节数组运行程序集 (exe)。我的代码是:

public static void Execute(byte[] assembly, string arg) {
if (assembly[0x3c] == 0x80) {
object[] o = new object[] { new string[] { arg } };
try {
Assembly.Load(assembly).EntryPoint.Invoke(null, o);
} catch (TargetInvocationException e) {
throw e.InnerException;
}
} else {
throw new Exception("File is not a valid .NET assembly.");
}
}

一切正常,但可执行文件不断泄漏内存。原来需要 6-10MB,这个在运行后产生 40-60 和高达 145mb(然后下降到 10 并再次循环)。

为什么会发生这种情况,是什么泄漏了内存以及如何解决这个问题?

最佳答案

这不是内存泄漏;您正在看到垃圾收集的影响。垃圾收集可以推迟到将来某个时间点,当系统确定它需要更多内存时;当进程使用率突然下降时,这就是您的实例中发生的情况。

别担心;这是完全正常的。而且,这是系统的设计方式;此行为不会影响您的执行时间或整体内存使用情况。

关于c# - 为什么程序集的调用占用如此多的 RAM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com