2011-02-25 73 views
1

我在Windows中开发了一个简单的UDP消息服务器和客户端应用程序,服务器可以向客户端发送消息,但客户端无法发送任何内容,它们只能在监听。问题在于客户端应用程序使用相当大的内存使用量在收听时大约为7M,在收到数据包时大约为9M。我可以将内存使用量减少到至少少于1M吗?如何减少Socket应用程序的C#内存使用量

回答

2

你如何测量你的内存占用?任何托管的.net应用程序(即使是最小的应用程序通常都有一个大约50 MB的共享工作集),应用程序的实际内存占用量远远小于此。

您是否试过拨打GC.GetTotalMemory来查看实际的托管内存使用情况?

1

这种负担的很大一部分是运行整个CLR系统,垃圾回收等的开销。如果你对内存占用超敏感(< 10-20Mb),那么CLR可能不适合你。即使是基本的HelloWorld私人工作集也超过4Mb的RAM。

如果您对脚印很敏感,那么最好通过寻找像C/C++等真正的提前编译语言来提供服务。