繁体   English   中英

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

[英]How to reduce C# memory usage for Socket Application

我在Windows中开发了一个简单的UDP消息服务器和客户端应用程序,该服务器可以向客户端发送消息,但是客户端什么也不能发送,它们只是在监听。 问题是客户端应用程序正在使用很大的内存,在侦听时约为7M,而在收到数据包时约为9M。 我可以将内存使用量减少到至少少于1M吗?

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

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

其中的大部分负担是运行整个CLR系统,垃圾回收等的开销。如果您对内存占用量(<10-20Mb)非常敏感,则CLR可能不适合您。 甚至基本的HelloWorld专用工作集都超过4Mb的RAM。

如果您对足迹敏感,则最好使用真正的提前编译的语言(例如C / C ++等)来为您提供最好的服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM