簡體   English   中英

C#中的內存使用情況

[英]Memory usage in C#

我有一個在C#中使用線程的程序。 有沒有辦法以編程方式了解應用程序的內存使用情況? 我想限制線程的產生說10兆字節的內存,我該怎么做?

如果你想要整個運行進程的內存而不是每個線程,那么如何:

// get the current process
Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();

// get the physical mem usage
long totalBytesOfMemoryUsed = currentProcess.WorkingSet64;

除了WorkingSet64之外,還有一大堆其他進程內存屬性可以在以下鏈接中查看“內存相關”屬性,以獲取最適合的內容

http://msdn.microsoft.com/en-us/library/system.diagnostics.process_properties.aspx

雖然我同意你已經收到的關於你的問題的評論,但如果你真的決定采取這種行動,那么使用System.Environment.WorkingSet可能是一個真正的答案嗎?

我和Will和Steve在一起,除非你真的必須這樣做,否則不要這樣做。 那說。

如果你真的需要這樣做,你可以使用他們所在的.Net Hosting API ,這樣像SQL Server這樣的應用程序可以在應用程序中托管.net框架。

它讓你可以控制內存管理等,我已經閱讀了這篇文章,但從未使用過API,當我感到無聊的時候,他們就在我的待辦事項列表上,而我的其他“有趣”項目都沒有那周:)

希望這可以幫助。

您不測量內存使用中的線程數。 相反,請考慮“處理器”(SMP /多核/超線程)的數量來決定並行運行的線程數。 或者使用ThreadPool ,它自動調整大小以實現良好的線程到CPU比率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM