Thời gian xử lý thay đổi thế nào theo kích thước dữ liệu?
Nếu bạn xử lý mọi phần tử của hai tập dữ liệu, và một tập lớn hơn, thì tập lớn hơn sẽ mất nhiều thời gian xử lý hơn. Tuy nhiên, điều quan trọng là cần hiểu rằng mức tăng thời gian không phải lúc nào cũng tỷ lệ thuận trực tiếp với mức tăng kích thước. Nghĩa là, nếu bạn có hai tập dữ liệu và một tập lớn gấp đôi tập kia, không có gì đảm bảo rằng tập lớn sẽ mất gấp đôi thời gian để xử lý. Nó có thể mất 1,5 lần hoặc thậm chí 4 lần lâu hơn. Điều đó phụ thuộc vào các phép toán bạn dùng để xử lý tập dữ liệu.
Trong bài tập này, bạn sẽ dùng gói microbenchmark, đã được đề cập trong khóa Writing Efficient R Code.
Lưu ý: Các con số được viết bằng ký hiệu khoa học $$1e5 = 1 * 10^5 = 100,000$$
Bài tập này là một phần của khóa học
Xử lý dữ liệu có khả năng mở rộng trong R
Hướng dẫn bài tập
- Nạp gói
microbenchmark. - Dùng hàm
microbenchmark()để so sánh thời gian sắp xếp các vector ngẫu nhiên. - Gọi
plot()trênmb.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)