処理時間はデータサイズでどう変わりますか?
2つのデータセットの全要素を処理する場合、一方が大きければ、その分処理に時間がかかります。ただし、その「どれくらい長くなるか」は、サイズの比に必ずしも正確に比例するわけではありません。つまり、2つのデータセットがあり、一方がもう一方の2倍のサイズでも、処理時間が必ず2倍になるとは限りません。1.5倍になることもあれば、4倍かかることもあります。これは、データセットの処理にどの操作を使うかに依存します。
この演習では、Writing Efficient R Code コースで扱った microbenchmark パッケージを使います。
注意: 数値は科学的記数法で表記しています。$$1e5 = 1 * 10^5 = 100,000$$
この演習はコースの一部です
Rで学ぶスケーラブルなデータ処理
演習の手順
microbenchmarkパッケージを読み込みます。microbenchmark()関数を使って、ランダムベクトルのソート時間を比較します。mbに対してplot()を呼び出します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load the microbenchmark package
___
# Compare the timings for sorting different sizes of vector
mb <- ___(
# Sort a random normal vector length 1e5
"1e5" = sort(rnorm(1e5)),
# Sort a random normal vector length 2.5e5
"2.5e5" = sort(rnorm(2.5e5)),
# Sort a random normal vector length 5e5
"5e5" = sort(rnorm(5e5)),
"7.5e5" = sort(rnorm(7.5e5)),
"1e6" = sort(rnorm(1e6)),
times = 10
)
# Plot the resulting benchmark object
___(mb)