我在Windows上开发了一个简单的UDP消息服务器和客户端应用程序,服务器可以向客户端发送消息,但客户端不能发送任何东西,他们只是在监听。问题是客户端应用程序使用了相当大的内存使用量,在侦听时约为7M,在接收数据包时约为9M。我可以将内存使用量减少到至少1M以下吗?
发布于 2011-02-25 16:11:34
你如何衡量你的内存占用?任何托管的.net应用程序,即使是最小的应用程序,通常都有大约50MB的共享工作集,您的应用程序的实际内存占用比这要小得多。
您是否尝试过调用GC.GetTotalMemory来查看实际的托管内存使用情况?
发布于 2011-02-25 16:17:04
这个负担很大程度上是运行整个CLR系统的开销,垃圾回收等。如果你对内存占用量(<10-20Mb)非常敏感,那么CLR可能不适合你。即使是一个基本的HelloWorld私有工作集也有超过4Mb的内存。
如果你对内存占用很敏感,最好是找一种真正的超前编译语言,比如C/C++等。
https://stackoverflow.com/questions/5114957
复制相似问题