我用 C# 编写了一个 hello world 程序(没有任何 UI 的 Windows 应用程序)。发布构建的可执行文件除了 Thread.Sleep(50000)//50 秒外什么都不做。 我打开了 sysinternals(像任务管理器这样的分析器)。这个可执行文件占用了 7MB 内存(私有(private)字节)!! 任何人都可以解释发生了什么以及如何减少内存使用量。 附言我还尝试使用 NGEN 预编译 .exe,但仍然使用相同的内存。
非常感谢
最佳答案
C#(和其他 JIT 编译/解释语言)通常最终会在后台自动为您做很多事情。虽然您编写的内容很简单,但在后台进行了大量工作以支持应用程序的 JIT 特性。
考虑到如今 2GB 的 RAM 相当普遍,7MB 的内存相对较小。除非您做一些不寻常的事情或分配大量数组和数据结构,否则它可能不会再增加。
如果是基于C#WindowsApplication项目类型的Hello World,Program.cs中有一个int main在Windows Form上做一个application.run,那么不仅JIT开销大,而且Windows 窗体的开销也是如此。
一天结束时,我确信一切都很好。
关于c# - 如何最小化Windows中的内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224020/