【发布时间】:2011-02-25 08:07:29
【问题描述】:
我在 Windows 中开发了一个简单的 UDP 消息服务器和客户端应用程序,服务器可以向客户端发送消息但客户端不能发送任何内容,它们只是在侦听。问题是客户端应用程序使用了相当大的内存使用量,它在监听时使用了大约 7M,在接收到数据包时使用了 9M。我可以将内存使用量减少到至少小于 1M 吗?
【问题讨论】:
我在 Windows 中开发了一个简单的 UDP 消息服务器和客户端应用程序,服务器可以向客户端发送消息但客户端不能发送任何内容,它们只是在侦听。问题是客户端应用程序使用了相当大的内存使用量,它在监听时使用了大约 7M,在接收到数据包时使用了 9M。我可以将内存使用量减少到至少小于 1M 吗?
【问题讨论】:
您如何衡量您的内存占用量?任何托管的 .net 应用程序,即使是最小的应用程序通常都有一个大约 50 MB 的共享工作集,您的应用程序的实际内存占用量要小得多。
您是否尝试调用GC.GetTotalMemory 查看实际托管内存使用情况?
【讨论】:
大部分负担是运行整个 CLR 系统、垃圾收集等的开销。如果您对内存占用 (
如果您对足迹很敏感,最好寻找真正的提前编译语言,如 C/C++ 等。
【讨论】: