2012-03-21 9 views
-1

にメモリ空間を取得し、Cの++での例は次のとおりです。? はあなたがC#でこれを行うだろうどのようにC#の

void PrintMemoryInfo(DWORD processID) 
{ 
    std::ofstream fs("d:\\processInfo.txt"); 
    fs<<"Information of Process:\n"; 

    HANDLE hProcess; 
    PROCESS_MEMORY_COUNTERS pmc; 
    fs<<"\nProcess ID: %u\n"<<processID; 

    hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | 
            PROCESS_VM_READ, 
            FALSE, processID); 
    if (NULL == hProcess) return; 

    if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc))) { 



     fs<< "\tPageFaultCount: 0x%08X\n" << pmc.PageFaultCount; 
     fs<< "\tYour app's PEAK MEMORY CONSUMPTION: 0x%08X\n"<<pmc.PeakWorkingSetSize; 
     fs<< "\tYour app's CURRENT MEMORY CONSUMPTION: 0x%08X\n"<< pmc.WorkingSetSize; 
     fs<< "\tQuotaPeakPagedPoolUsage: 0x%08X\n"<< 
        pmc.QuotaPeakPagedPoolUsage; 
     fs<< "\tQuotaPagedPoolUsage: 0x%08X\n"<< 
        pmc.QuotaPagedPoolUsage; 
     fs<< "\tQuotaPeakNonPagedPoolUsage: 0x%08X\n"<< 
        pmc.QuotaPeakNonPagedPoolUsage; 
     fs<< "\tQuotaNonPagedPoolUsage: 0x%08X\n"<< 
        pmc.QuotaNonPagedPoolUsage; 
     fs<< "\tPagefileUsage: 0x%08X\n"<< pmc.PagefileUsage; 
     fs<< "\tPeakPagefileUsage: 0x%08X\n"<< 
        pmc.PeakPagefileUsage;     
    } 
    fs.close(); 
    CloseHandle(hProcess); 
} 

int main() 
{ 
    PrintMemoryInfo(GetCurrentProcessId()); 

    return 0; 
} 

が、C#で

...

答えて

1

は、実行中のアプリケーションのメモリフットプリントを取得記述するいくつかの他の記事です:; DR

Poll C# app's memory usage at runtime?

Memory usage in C#

TLは、

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

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

私は(あなたがusingディレクティブまたはアセンブリ参照が不足している?)エラー型または名前空間名「プロセス」が見つかりませんでした取得あなたが追加する必要があり – cMinor

+0

「たSystem.Diagnosticsを使用して;」 (引用符なし)を参照してSystem.Diagnostics(参照しようとしているProcessクラスを含む)を参照するようにします。 – Killnine

関連する問題