R中system.time()

system.time() 関数は、コードの実行にかかる時間を見積もるために使用されるツールの 1 つですその出力には、ユーザー、システム、経過時間 (秒) の 3 つの値が示されます。

プログラムの合計消費時間は 3 つの合計です。

ここで、経過時間 (elapsed): コード ブロックの実行中の経過時間を測定します。ユーザーとシステムを組み合わせて、CPU がコードのブロックを実行するのにかかる時間を測定します。

ユーザー時間: ユーザー アプリケーション コード (R コード) の処理に費やされた CPU 時間です。ユーザー アプリケーションがシステム リソースにアクセスする場合、この処理時間はシステム時間として報告されます。

ユーザー時間システム時間の違いを理解するには、次の 2 つの例を使用してください

R は 1000 回計算し、1 回だけ出力します。

system.time({
    x=0
    for(i in 1:1000){
        x = x+1
    }
    print(x)
})

出力は次のとおりです。

ユーザー時間 (user) は正の値ですが、システム時間 (system) はほとんどの場合、ほぼ 0 です。

上記のコードと比較すると、次のコードは同じ操作を実行しますが、出力は 1000 回行われます。 

system.time({
    x=1
    for(i in 1:1000){
        x = x+1
        print(x)
    }
})

出力は次のとおりです。

上記の結果から、1000 個の print ステートメントにより R がオペレーティング システムの入出力リソースにアクセスできるため、システム時間も正であることがわかります。

経過時間 (elapsed) を説明するために、次のコードは CPU が長時間アイドル状態である例を示しています。

system.time({
    Sys.sleep(5) # Time in seconds.
})

 出力は次のとおりです。

 

 経過時間は CPU 時間をはるかに上回っており、コードは何も実行していないため、指定されたスリープ時間とほぼ同じです。

参考:

R | D スタックでの system.time 関数の出力の解釈 - Delft スタック

おすすめ

転載: blog.csdn.net/u011375991/article/details/131867829