簡體   English   中英

tcsh時間和makefile時間有顯着差異

[英]tcsh time and makefile time are significantly different

在make和終端中運行time ,我看到了不同的行為。 我正在使用OpenMP和pthread(單獨)編譯多線程程序並對它們進行計時,以便將它們的加速比與程序的順序版本進行比較。 但是,當我在終端上運行time a.out時,每個程序的時間超過60秒,但在makefile中,兩者都不到10秒。 此外,終端時間計算需要不到60秒的時間返回,所以我覺得它對我說謊。

會導致什么? 我原本以為make和終端都使用不同的time函數,但顯然我沒有/usr/bin/time make有內置time嗎?

編輯 :是的,我知道用戶和系統time受到線程數量的影響,並且可能比實際更大,並且內置time 。我的問題是:為什么從不同的地方運行相同的東西(終端和制作)在同一會話中)導致返回的時間有顯着差異? 兩個時間輸出彼此不是很近。

幾乎所有炮彈都有內置時間。 我不知道你怎么稱呼時間,但你可能需要根據shell不同地解釋它的結果。

我用4個線程的程序做了一個實驗,浪費了一些時間:

$ cc -o foo foo.c && time ./foo

real    0m5.258s
user    0m18.805s
sys 0m0.061s
$ tcsh
% time ./foo
18.978u 0.062s 0:05.30 359.0%   0+0k 0+0io 0pf+0w

tcsh首先報告用戶時間,然后報告系統時間,然后報告實時。 Bash報告實時,用戶時間,然后是系統時間。 那些意味着不同的東西 實時是“掛鍾”時間,如果用秒表測量它,已經過了多少時間。 用戶時間是您在userland中運行代碼時使用的cpu時間,這是您使用的所有cpu的總和。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM