处理时间如何随数据规模变化?
如果您要处理两个数据集的所有元素,其中一个更大,那么更大的数据集通常会花更长时间处理。不过,需要注意的是,所需时间的增加并不总是与数据规模的增大成正比。也就是说,如果两个数据集中有一个是另一个的 2 倍大,也不能保证它的处理时间一定是 2 倍。可能只慢 1.5 倍,也可能慢到 4 倍。这取决于处理数据集所用的具体操作。
在本练习中,您将使用 microbenchmark 包,它在《Writing Efficient R Code》课程中已有介绍(https://www.datacamp.com/courses/writing-efficient-r-code)。
注意:数字使用科学计数法表示 $$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)