Nguồn: byroot.github.io

Tóm tắt

Bài viết từ một kỹ sư tại Intercom trình bày quá trình tối ưu hóa các path method trong Ruby, đặc biệt trong bối cảnh cải thiện CI pipeline cho một monolith lớn. Điểm khởi đầu là nhận thấy rằng các thao tác liên quan đến filesystem path (như File.join, Pathname, expand_path) chiếm tỷ lệ đáng kể trong profiling data của các test suite phức tạp.

Tác giả đi sâu vào cách Ruby xử lý path string ở tầng C extension, phát hiện nhiều điểm có thể tối ưu: tránh allocation không cần thiết, short-circuit các trường hợp path đã absolute, và cache kết quả tại các hot path. Các thay đổi được đề xuất dưới dạng patch cho Ruby core, không phải monkey-patch ở application layer.

Kết quả đạt được là giảm đáng kể số lượng object allocation và thời gian GC khi chạy test suite lớn. Bài viết là ví dụ điển hình về cách tiếp cận performance engineering từ profiling data thực tế đến thay đổi ở tầng runtime.

👉 Đọc bài gốc