在我的程序的頂部和末尾,我使用clock()來計算我的程序需要多長時間完成。不幸的是,它報告的時間似乎只有一半。我再次用「時間」命令檢查了這一點。C++:在Linux中使用時鐘(使用時鐘())不同步(由於OpenMP?)
我的方案報告: 在45.86s完成
時間命令報告: 真正0m22.837s 用戶0m45.735s SYS 0m0.152s
用我的手機給它的時間,它完成23秒(又名:「真實」時間)。 「用戶」時間是所有線程的總和,因爲我使用的是OpenMP,所以這很有意義。 (您可以在這裏閱讀:What do 'real', 'user' and 'sys' mean in the output of time(1)?)
那麼,爲什麼clock()報告在「用戶」時間而不是「真實」時間?我應該使用不同的函數來計算我的程序運行了多久?作爲一個側面說明,Windows的clock()按預期工作,並在「真實」時間內報告。
C++不會在問題的標題歸屬。而且,當你形成你的問題時,這與C++沒有多大關係。 –
硬件雙核? – Arno