プログラムの先頭と最後で、clock()を使用して、プログラムが終了するまでにかかる時間を計算します。残念ながら、報告の半分の時間がかかるようです。「time」コマンドでこれを再確認しました。
私のプログラムレポート:45.86秒で完了
時間コマンドレポート:実数0m22.837sユーザー0m45.735s sys 0m0.152s
私の携帯電話を使って時間を計ると、23秒で完了しました(別名:「リアルタイム」時間)。「ユーザー」時間はすべてのスレッドの合計であり、OpenMPを使用しているので意味があります。(ここでそれについて読むことができます:time(1)の出力で「real」、「user」、および「sys」は何を意味しますか?)
では、なぜclock()は「実際の」時間ではなく「ユーザー」の時間でレポートするのでしょうか。プログラムの実行時間を計算するために使用する必要のある別の関数はありますか?
ちなみに、Windowsのclock()は期待どおりに機能し、「リアルタイム」でレポートします。