เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เวลาในการประมวลผลเปลี่ยนแปลงไปตามขนาดข้อมูลอย่างไร?

เมื่อประมวลผลชุดข้อมูลสองชุดที่มีขนาดต่างกัน ชุดที่ใหญ่กว่าย่อมใช้เวลานานกว่า แต่สิ่งสำคัญที่ต้องเข้าใจคือ ระยะเวลาที่เพิ่มขึ้นนั้นไม่ได้แปรผันตรงกับขนาดข้อมูลเสมอไป กล่าวคือ หากชุดข้อมูลหนึ่งมีขนาดใหญ่กว่าอีกชุดสองเท่า ไม่ได้หมายความว่าจะใช้เวลาประมวลผลนานเป็นสองเท่าเสมอ อาจใช้เวลานานกว่า 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)
แก้ไขและรันโค้ด