发信人: shilshil (shil), 信区: KernelTech
标 题: 怎样得到Linux中进程、线程的运行时间和内存使用信息
发信站: BBS 水木清华站 (Tue Aug 12 09:59:43 2003)
不知大家都怎样在Linux上测试程序的性能?在偶想象中Linux应该提供如下接口:
1。 得到当前线程ID
2。 得到当前线程的在系统用户态、核心态执行时间
3。 得到当前进程的在系统用户态、核心态执行时间
4。 得到当前进程的虚拟内存使用情况(Peak working set size, Current working set
size)
偶把以上调用的Win32 API列在下面,麻烦哪位牛人告诉偶Linux下对应的系统调用是什么
?
这里先谢了。
1。 得到当前线程ID
DWORD GetCurrentThreadId(VOID);
The GetCurrentThreadId function retrieves the thread identifier of the cal
ling thread.
2。 得到当前线程的在系统用户态、核心态执行时间
BOOL GetThreadTimes(
HANDLE hThread, // handle to thread
LPFILETIME lpCreationTime, // thread creation time
LPFILETIME lpExitTime, // thread exit time
LPFILETIME lpKernelTime, // thread kernel-mode time
LPFILETIME lpUserTime // thread user-mode time
);
The GetThreadTimes function retrieves timing information for the specified
thread.
3。 得到当前进程的在系统用户态、核心态执行时间
BOOL GetProcessTimes(
HANDLE hProcess, // handle to process
LPFILETIME lpCreationTime, // process creation time
LPFILETIME lpExitTime, // process exit time
LPFILETIME lpKernelTime, // process kernel-mode time
LPFILETIME lpUserTime // process user-mode time
);
The GetProcessTimes function retrieves timing information for the specifie
d process.
4。 得到当前进程的虚拟内存使用情况(Peak working set size, Current working set
size)
BOOL GetProcessMemoryInfo(
HANDLE Process, // handle to process
PPROCESS_MEMORY_COUNTERS ppsmemCounters, // buffer
DWORD cb // size of buffer
);
The GetProcessMemoryInfo function retrieves information about the memory u
sage of the specified process in the PROCESS_MEMORY_COUNTERS structure.
typedef struct _PROCESS_MEMORY_COUNTERS {
DWORD cb;
DWORD PageFaultCount;
SIZE_T PeakWorkingSetSize;
SIZE_T WorkingSetSize;
SIZE_T QuotaPeakPagedPoolUsage;
SIZE_T QuotaPagedPoolUsage;
SIZE_T QuotaPeakNonPagedPoolUsage;
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS;
typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;
--
※ 来源:·BBS 水木清华站 http://smth.org·[FROM: 210.51.19.226]