2011-02-25 72 views
1

我在Windows中開發了一個簡單的UDP消息服務器和客戶端應用程序,服務器可以向客戶端發送消息,但客戶端無法發送任何內容,它們只能在監聽。問題在於客戶端應用程序使用相當大的內存使用量在收聽時大約爲7M,在收到數據包時大約爲9M。我可以將內存使用量減少到至少少於1M嗎?如何減少Socket應用程序的C#內存使用量

回答

2

你如何測量你的內存佔用?任何託管的.net應用程序(即使是最小的應用程序通常都有一個大約50 MB的共享工作集),應用程序的實際內存佔用量遠遠小於此。

您是否試過撥打GC.GetTotalMemory來查看實際的託管內存使用情況?

1

這種負擔的很大一部分是運行整個CLR系統,垃圾回收等的開銷。如果你對內存佔用超敏感(< 10-20Mb),那麼CLR可能不適合你。即使是基本的HelloWorld私人工作集也超過4Mb的RAM。

如果您對腳印很敏感,那麼最好通過尋找像C/C++等真正的提前編譯語言來提供服務。