- Có báo cáo cho biết khi khởi động, FreeBSD dành 7% thời gian để bubble sort các SYSINIT
- Đây là đoạn mã được viết từ năm 1996; vào thời điểm đó chỉ có khoảng 30 SYSINIT cần sắp xếp, nhưng hiện nay con số đã vượt quá một nghìn nên thời gian xử lý trở nên đáng kể
- Trong commit gần đây, các mảng SYSINIT đã được chuyển sang SLIST, nhờ đó có thể dùng merge sort và việc thêm các SYSINIT mới cũng nhanh hơn
- Merge sort nhanh hơn khoảng tới ~100 lần
- Theo mốc Firecracker, có thể tiết kiệm 2ms trên tổng thời gian khởi động 28ms
3 bình luận
Với các tập dữ liệu dưới một quy mô nhất định, việc dùng đoạn mã nhỏ và dễ hiểu hẳn đã từng là một lựa chọn hợp lý.
Và có lẽ vẫn còn khá nhiều trường hợp dùng thuật toán chậm tồn tại vì những quyết định như vậy.
(Dù có phần thiên kiến) tôi khá có cảm giác rằng nếu có ai bắt bẻ chuyện kiểu này, thì đó sẽ là người chẳng giúp được gì mà chỉ giỏi phàn nàn.
FreeBSD dành 7% thời gian khi khởi động để sắp xếp các SYSINIT bằng bubble sort
Bình luận trên Hacker News