如何减少Socket应用程序的C#内存使用量

时间:2011-02-25 08:07:29

标签: c# sockets udpclient

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

2 个答案:

答案 0 :(得分:2)

你如何衡量你的记忆足迹?任何托管的.net应用程序,即使是最小的应用程序通常都有大约50 MB的共享工作集,您的应用程序的实际内存占用量远小于此。

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

答案 1 :(得分:1)

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

如果您对足迹敏感,那么最好通过寻找真正的提前编译语言(如C / C ++等)来获得最佳服务。