簡體   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