IRONSOFTWAREHOME

在Linux/WSL中監控.NET程式記憶體

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

資源密集型的.NET工作,如OCR、PDF生成或圖像處理,在WSL(Windows Subsystem for Linux)或Linux容器等受限環境中可能很難進行規模擴展。 您可以直接從控制臺應用程式中實時記錄進程的記憶體消耗,或使用標準Linux工具在外部監視它。

先決條件

  • 已安裝.NET SDK,版本為5.0或更高。
  • 一個Linux環境,可以是本機或通過WSL。
  • 一個基本的.NET控制臺應用程式。

解決方案

1. 將記憶體使用情況記錄到控制臺

讀取過程的私有記憶體大小並以MB為單位列印它:

using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Trigger your memory-consuming logic here (e.g., OCR, PDF generation, etc.)
// Log memory usage
Process currentProcess = Process.GetCurrentProcess();
long memorySize = currentProcess.PrivateMemorySize64; // In bytes
Console.WriteLine($"Memory Usage: {memorySize / (1024 * 1024)} MB");
}
}
C#

PrivateMemorySize64返回的記憶體量,以字節為單位,是進程獨占且不與其它進程共享的記憶體。 這是一個測量您應用程式運行負荷的可靠指標。

2. 持續追蹤記憶體

對於長時間運行的過程,在一個迴圈中包裝讀取操作,以便在一定時間內對用量進行取樣:

while (true)
{
var memory = Process.GetCurrentProcess().PrivateMemorySize64;
Console.WriteLine($"Memory Usage: {memory / (1024 * 1024)} MB");
Thread.Sleep(5000); // Log every 5 seconds
}
C#

Thread.Sleep(5000)調用使日誌處理以每五秒進行一次讀取。 將輸出重定向到一個文件或另一個進程,或在用量超過門檻時用於觸發警報。

控制台輸出

Memory Usage: 214 MB
Text

選項:使用Linux工具外部監控

要從應用程式外監看一個進程,請使用標準工具之一。 <pid>是Process ID,作業系統分配給每個正在運行的進程的唯一數字。

htop: 實時監看單一進程。

top -p <pid>
SHELL

ps: 列印記憶體領域的一次性快照。

ps -o pid,vsz,rss,comm -p <pid>
SHELL

這裡的RSS是駐留集大小,表示使用中的物理記憶體。

smem: 安裝它以獲得更詳細的每進程分析。

sudo apt install smem
smem -p <pid>
SHELL

最佳實踐

  • 在部署到生產環境之前,在測試環境中運行記憶體追蹤。
  • 對於長期運行的服務或API,整合一個指標堆棧,如Prometheus或Grafana。
  • 保留GC.Collect()僅用於偵錯。
警告: 不要在生產程式碼中調用GC.Collect(); 僅在偵錯時使用。
Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 21,105,021版本:2026.9剛剛發布

立即獲取您的免費30天試用密鑰。
不需要信用卡或建立賬戶
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起