2011-10-18 7 views
2

私はRのsystem.time()関数について何かを誤解しているに違いないと思います。 (testFunctionは()他の場所で定義されていますが、いくつかのかなり計算集約コードが含まれている)、そしてコードを実行されますが、第一の後に仕事を殺すsystem.time()の動作を理解する

for(i in 1:10) 
{ 
    print(system.time(testFunction())) 
} 

:私はtest.rに次のコードをお持ちの場合

> source("test.r") 
user system elapsed 
280.388 2.622 288.155 
Timing stopped at: 210.891 0.367 211.637 

理由の値関数の経過時間未満「のタイミングが停止」される:ループは、その後、次の出力を受けますか?

答えて

2

タイミングは2番目のループの間に再開され、部分的に終了したため完全な最初のループのタイミングよりも遅くなります。

+0

ありがとうございます。私はまだ 'ユーザー'、 'システム'と '経過時間'の違いを混同していますか?proc.time - なぜ他の2つの値の合計ではなく '経過'ですか? – ChrisW

+1

聞こえるように聞こえますが、一般的にはそうではありません。ここに、このトピックについての良いRヘルプの投稿があります。例は次のとおりです。https://stat.ethz.ch/pipermail/r-help/2008-April/160611.html –

+1

この例は一般的なRヘルプファイルより優れていますなぜなら、なぜ2つのCPU時間が異なるのかを説明していない(この例では、そのうちの1つが0.00です)。経過時間は常にシステム時間より大きなオーダーになるでしょうか?どのような状況で 'user'と' elapsed'が似ているのでしょうか(例のように)、あるいは非常に異なっているでしょうか(Rヘルプの例のように)? – ChrisW

関連する問題