1

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

4

2 回答 2

2

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

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

于 2011-02-25T08:11:33.807 回答
1

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

如果您对足迹很敏感,最好寻找真正的提前编译语言,如 C/C++ 等。

于 2011-02-25T08:17:03.593 回答