เวลาในการประมวลผลเปลี่ยนแปลงไปตามขนาดข้อมูลอย่างไร?
เมื่อประมวลผลชุดข้อมูลสองชุดที่มีขนาดต่างกัน ชุดที่ใหญ่กว่าย่อมใช้เวลานานกว่า แต่สิ่งสำคัญที่ต้องเข้าใจคือ ระยะเวลาที่เพิ่มขึ้นนั้นไม่ได้แปรผันตรงกับขนาดข้อมูลเสมอไป กล่าวคือ หากชุดข้อมูลหนึ่งมีขนาดใหญ่กว่าอีกชุดสองเท่า ไม่ได้หมายความว่าจะใช้เวลาประมวลผลนานเป็นสองเท่าเสมอ อาจใช้เวลานานกว่า 1.5 เท่า หรือถึง 4 เท่าก็ได้ ทั้งนี้ขึ้นอยู่กับการดำเนินการที่ใช้กับชุดข้อมูลนั้น
ในแบบฝึกหัดนี้ จะใช้แพ็กเกจ microbenchmark ซึ่งเคยแนะนำไว้ใน คอร์ส Writing Efficient R Code
หมายเหตุ: ตัวเลขแสดงในรูปสัญกรณ์วิทยาศาสตร์ $$1e5 = 1 * 10^5 = 100,000$$
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประมวลผลข้อมูลขนาดใหญ่ใน R
คำแนะนำการฝึกหัด
- โหลดแพ็กเกจ
microbenchmark - ใช้ฟังก์ชัน
microbenchmark()เพื่อเปรียบเทียบเวลาในการเรียงลำดับเวกเตอร์แบบสุ่ม - เรียกใช้
plot()กับmb
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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)