получить пространство памяти в C # - PullRequest
0 голосов
/ 21 марта 2012

Как бы вы сделали это в 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;
}

но в с #? ...

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Вот несколько других статей, в которых описывается получение места в памяти работающего приложения:

Использование памяти приложением Poll C # во время выполнения?

Использование памяти вC #

TL; DR;

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

// get the physical mem usage
long totalBytesOfMemoryUsed = currentProcess.WorkingSet64;
0 голосов
/ 21 марта 2012

Вы должны быть в состоянии сделать это с помощью класса System.Diagnostics.Process.Пожалуйста, взгляните на: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...