我有一段用戶空間代碼正在解析/ proc/PID/task/TID/stat以獲取cpu使用情況。我可以使用HZ來獲取每秒的jiffies,但是這段代碼可能會移動到具有不同配置值的另一臺機器上。在運行時有沒有辦法從用戶空間獲取HZ的價值?將jiffies轉換爲秒
回答
將它除以從sysconf(_SC_CLK_TCK)中獲得的數字。
不過,我想這大概是100總是在Linux下,無論實際的時鐘滴答的,它總是呈現給用戶空間爲100
見人PROC(5)。
我讀過,100總是提交給用戶空間......但不知道/ proc計爲用戶空間:) – 2010-10-06 22:43:14
我不確定我明白:這是否意味着HZ實際上不是提問者想要的數字? – 2010-10-07 15:40:26
HZ是我想要的數字......但它是一個常量編譯的。只要我在我編譯的同一臺機器上運行...一切都很好。但如果我移動到另一臺機器而無需重新編譯,那麼它可能會有錯誤的值。 – 2010-10-08 13:55:49
「ps」命令的來源包括文件<linux/param.h>
以獲取HZ的值。
他們還尋找「ELF記」。與編號17找到HZ的值(sysinfo.c):
//extern char** environ;
/* for ELF executables, notes are pushed before environment and args */
static unsigned long find_elf_note(unsigned long findme){
unsigned long *ep = (unsigned long *)environ;
while(*ep++);
while(*ep){
if(ep[0]==findme) return ep[1];
ep+=2;
}
return NOTE_NOT_FOUND;
}
[...]
hz = find_elf_note(17);
我不得不承認這是怪異的我,因爲ELF指出是限定的區間編譯期間。
爲了澄清數學背後MarkR's答案:
sysconf(_SC_CLK_TCK)
將讓你jiffies per second
。用sysconf(_SC_CLK_TCK)
得到的數字除以jiffies
得到總秒數。
jiffies jiffies seconds
-------------------- = ----------------- = ------- = seconds
sysconf(_SC_CLK_TCK) (jiffies/second) 1
對於shell腳本等,請使用命令行中的getconf CLK_TCK
。使用可以使用它作爲環境變量或命令行傳遞參數。
main(int argc, char **argv) {
unsigned long clk_tck = atol(
getenv("CLK_TCK") || "0"
) || sysconf(_SC_CLK_TCK) ;
... /* your code */
這使用上面的sysconf,但允許您用環境變量覆蓋它,可以使用上面的命令設置環境變量。
- 1. 將jiffies轉換爲毫秒
- 2. 將msec轉換爲jiffies
- 3. 將時間轉換爲秒+毫秒秒
- 4. 將DateTime轉換爲毫秒
- 5. 將hh:mm:ss轉換爲秒
- 6. 將毫秒轉換爲time_t
- 7. 將Ecto.DateTime轉換爲毫秒
- 8. 將MIDI-deltatimes轉換爲秒
- 9. 將秒轉換爲日期
- 10. C++ \將FILETIME轉換爲秒
- 11. 將QTime轉換爲秒
- 12. 比較jiffies和毫秒
- 13. 將秒轉換爲天,分和秒
- 14. Haskell:將UTCTime轉換爲秒和毫秒
- 15. 在秒錶中將秒轉換爲hhh:mm:ss
- 16. 將負秒轉換爲小時:分:秒
- 17. 如何將納秒轉換爲秒?
- 18. 將gettimeofday()微秒轉換爲秒
- 19. 將毫秒轉換爲毫秒
- 20. 如何將jiffies轉換爲virt插件的百分比
- 21. 如果jiffies正在解析msecs,usecs_to_jiffies如何將usecs轉換成jiffies?
- 22. 如何將秒錶刻度轉換爲納秒,毫秒和秒?
- 23. 將時間碼轉換爲秒
- 24. 將秒轉換爲小時和分鐘
- 25. 將字符串轉換爲秒
- 26. 將2倍轉換爲毫秒之差?
- 27. 將ULARGE_INTEGER QuadPart轉換爲毫秒
- 28. golang:將時間轉換爲秒
- 29. JavaScript將秒轉換爲日期對象
- 30. 如何將毫秒數轉換爲DateTime?
Duplicate:http://stackoverflow.com/questions/2731463/converting-jiffies-to-milli-seconds – Daenyth 2010-10-06 19:34:07
這不是重複的,因爲我不能使用HZ定義。 – 2010-10-06 19:48:57