2015-05-13 157 views
0

我目前正試圖從運行QNX的PowerPC中獲取有關CPU負載和RAM使用情況的信息。這個想法是將這些信息寫入一個帶有時間戳的文本文件中,但一旦我將這些信息作爲「標準值」,這裏就不是我的問題。我的程序將使用C++,我已經爲Windows(通過PDH API)做了這種程序。也許你有像this這樣的頁面,但對於QNX?可能我正在尋找錯誤的關鍵字。如何從QNX中獲取CPU負載/ RAM使用情況?

你能幫我解決這個問題嗎?任何一種方向都會受到歡迎,因爲我是QNX和這種編程的新手。非常感謝!

回答

0

您將使用/ proc文件系統。

  1. 從命令行可以檢查由具有進程ID = 1234的進程的存儲器空間的大小:

LS -l/PROC/1234 /作爲

「作爲「代表」地址空間「,並且此虛擬文件的大小將表示對所討論的進程使用的存儲器的良好估計,在本示例中爲1236992字節:

-rw-r-r-1 root root 1236992 Aug 21 21:25 as

要以編程方式獲得相同的值,您需要在/ proc/PID/as文件上使用stat()函數。

可以參考以下頁面的文檔中對於相同的一個更詳細的解釋: http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.cookbook%2Ftopic%2Fs3_procfs_pid_directories.html

  • 爲了獲得CPU時間(系統/用戶)使用通過該過程,您可以使用/ proc/PID/as文件中的DCMD_PROC_INFO devctly()。您需要參考傳遞給devctl()的debug_process_t結構的「utime」和「stime」成員。
  • 您可以找到QNX文檔中的以下網頁上的詳細說明和示例代碼: http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.cookbook%2Ftopic%2Fs3_procfs_DCMD_PROC_INFO.html

    +0

    有了一些更多的研究,我發現[這](http://www.qnx.com/support /knowledgebase.html?id=50130000000P9b5)用於QNX知識庫中的CPU負載計算。所以感謝您的幫助。/proc還有一個問題。我看到很多進程 - 有沒有像所有使用的RAM的積累? – Boernii

    相關問題