有哪些提示可以减少.NET应用程序的内存使用量?考虑以下简单的C#程序.
class Program
{
static void Main(string[] args)
{
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
在x64的发布模式下编译并在Visual Studio外部运行,任务管理器报告以下内容:
Working Set: 9364k
Private Working Set: 2500k
Commit Size: 17480k
Run Code Online (Sandbox Code Playgroud)
如果它只为x86编译它会好一点:
Working Set: 5888k
Private Working Set: 1280k
Commit Size: 7012k
Run Code Online (Sandbox Code Playgroud)
然后,我尝试了以下程序,它执行相同但尝试在运行时初始化后修剪进程大小:
class Program
{
static void Main(string[] args)
{
minimizeMemory();
Console.ReadLine();
}
private static void minimizeMemory()
{
GC.Collect(GC.MaxGeneration);
GC.WaitForPendingFinalizers();
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,
(UIntPtr) 0xFFFFFFFF, (UIntPtr)0xFFFFFFFF);
}
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetProcessWorkingSetSize(IntPtr process,
UIntPtr minimumWorkingSetSize, UIntPtr maximumWorkingSetSize);
}
Run Code Online (Sandbox Code Playgroud)
在Visual Studio外部的 …
什么是"内存高效C编程"的最佳实践.主要用于嵌入式/移动设备应该是低内存消耗的准则?
我猜应该有单独的指导方针a)代码存储器b)数据存储器