我有一个简单的 C# 2008 应用程序,它显示 png 图片并处理一些简单的 MouseEvents。
虽然它并不复杂,但它至少使用 9.5-10 MB 的内存(如任务管理器中所示)
我已经禁用了任何类型的错误记录,并删除了调试和跟踪符号。 “优化代码”已激活。
有什么办法可以减少这种情况吗?也许有一些选项作为框架的 native 编译(这是否存在于 .NET 中?)
有什么想法吗?或者这只是我拥有 .NET-Framework 必须付出的代价吗?
编辑:我知道 10 MB 并不多。但它将在 Citrix Presentation Server(或现在称为 XenApp)上运行,这意味着一台服务器上大约有 30 个用户。 30 个用户 * 10 MB = 300 MB 仅用于这个小应用程序。
提前致谢并致以最诚挚的问候
最佳答案
无论您做什么,都必须在此过程中加载 CLR。 10MB 内存不算太多,而且 10MB 并非全部都是私有(private)内存(可能大部分是可共享的)。顺便说一句,这不像“如果您的简单应用程序占用 10MB,使其复杂(内存方面)的两倍将需要两倍的内存(基本上,它是 CLR 的内存占用量。)
我刚刚构建了一个简单的控制台应用程序 (for(;;);
)。 “资源监视器”显示它需要~2.5MB 私有(private)内存和~7MB 共享内存。
关于C# 2k8 减少内存使用(简单的应用程序需要 10 MB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336056/