24 điểm bởi xguru 2022-12-12 | 9 bình luận | Chia sẻ qua WhatsApp
  • Chứng minh bằng thực nghiệm vì sao “thời gian build nhanh quan trọng với công ty” và “tài nguyên cloud mạnh có thực sự đắt không?”
  • Kiểm thử thời gian build trên GitHub Large Runner từ 2~64 core (kernel Linux Fedora)

Chi phí của thời gian build chậm đối với công ty

  • Nếu lấy mức lương trung bình của lập trình viên là $150K/năm thì tương đương $75/giờ
  • Nếu một lần build mất 1 giờ và lập trình viên không làm việc khác, công ty sẽ phải trả thẳng $75 chi phí đó
  • Kết quả chạy thử (Fedora 36)
    • Core (giá mỗi phút) - Tổng thời gian build - Chi phí mỗi lần build - Chi phí lập trình viên (1 người)
    • 2 core($0.008/phút) - 310 phút - $2.48 - $389.98
    • 8 core($0.0032/phút) - 92 phút - $2.94 - $117.94
    • 16 core($0.064/phút) - 55 phút - $3.52 - $72.27
    • 32 core($0.128/phút) - 35 phút - $4.48 - $48.23
    • 64 core($0.256/phút) - 27 phút - $6.91 - $40.66
  • Kết luận là khi có nhiều lập trình viên cùng làm việc, chi tiền cho phần cứng mạnh hơn sẽ hiệu quả hơn

Chi phí của việc chuyển ngữ cảnh đối với công ty

  • Nếu giả sử trong lúc build chạy, lập trình viên làm công việc khác
  • Việc chuyển ngữ cảnh cũng có chi phí. Theo nghiên cứu, trung bình mất khoảng 23 phút
  • Cá nhân tác giả thấy mỗi lần rời công việc đang tập trung để chuyển sang việc khác có thể mất tới 1 giờ
  • Kết quả chạy thử (tính theo khoảng 30~15 phút)
    • Core - Thời gian build - Chi phí mỗi lần build - Chi phí lập trình viên một phần (1 người, 30 phút) - Chi phí lập trình viên một phần (1 người, 15 phút)
    • 2 core - 310 - $2.48 - $39.98 - $21.23
    • 16 core - 55 - $3.52 - $41.02 - $22.23
    • 64 core - 27 - $6.91 - $44.41 - $25.66
  • Với giả định chi phí lập trình viên là $75/giờ, chi thêm tiền cho máy móc hiệu quả hơn rất nhiều
    • Ngay cả khi dùng 64 core, mức đắt nhất, chi phí vẫn chỉ bằng 1/5 chi phí theo giờ của một lập trình viên

Kết luận

  • Trả tiền cho phần cứng tốt hơn thực ra rẻ hơn và cũng tốt hơn cho lập trình viên (giảm yếu tố gây gián đoạn)
  • Trong thí nghiệm này, trả thêm $4~5 cho thời gian build giúp tiết kiệm khoảng $40 với 1 lập trình viên, và hơn $200 với một nhóm 5 người, đồng thời còn tiết kiệm 1 giờ do chuyển task
    • Tất nhiên ở các công ty quy mô lớn, chi $4~5 cho mỗi lần build có thể trở thành con số đáng kể, nhưng chi phí năng suất bị chôn vùi cũng sẽ tăng theo
  • Chi tiền để có hiệu năng CPU tốt hơn sẽ được đền đáp theo thời gian.
    Tất nhiên các lập trình viên sẽ cảm ơn bạn

9 bình luận

 
kandk 2022-12-13

Đồng ý

 
depth221 2022-12-13

https://xkcd.com/303/

Có vẻ như việc không còn gì đáng làm trong lúc chờ build là chuyện chung trên toàn thế giới.

 
pmc7777 2022-12-12

Ôi đúng là nội dung mình thật sự rất tò mò. Hóa ra blog GitHub cũng có nhiều thứ để xem hơn mình nghĩ. Cũng thấy yên tâm(?) vì có vẻ không chỉ mình là người hay làm việc khác hoặc cứ phải để tâm liên tục khi build.

 
love7peace 2022-12-12

Công nhận. Tôi thích desktop hơn là laptop Plus.

 
dbs0829 2022-12-12

Tôi rất đồng cảm. Tôi là một nhà nghiên cứu deep learning nên đang sử dụng đồng thời nhiều thiết bị.
Vì thường xuyên chạy thí nghiệm nên có nhiều lúc tôi dùng hết toàn bộ tài nguyên,
và rồi lại xuất hiện những khoảng thời gian bị hẫng ở giữa.
Trong lúc thí nghiệm chạy, làm thêm việc khác cũng khá khiến tôi phân tâm.

 
kherootz 2022-12-12

Mức lương trung bình là $150k sao?

 
kuroneko 2022-12-12

Đôi khi tôi từng cảm thấy rất bức bối vì giới hạn hiệu năng của PC hoặc máy chủ, và quả thật tôi có cảm giác năng suất giảm đi so với khi mọi thứ chạy nhanh nhạy, mượt mà.

 
ruinnel 2022-12-12

Nhưng đúng là nói rất chuẩn.
Trước đây tôi từng làm ở một môi trường mà mỗi lần build mất đến 1 tiếng...
Cứ chạy build là lại luôn tranh thủ làm việc khác cho đến khi xong haha
Trong lúc build thì PC cũng hay bị ì đi nữa..
Ngay cả khi bận làm việc khác, tôi vẫn phải thỉnh thoảng kiểm tra tiến độ build nên rất khó tập trung.

 
xguru 2022-12-12

Dù đây là một bài viết mang tính quảng bá cho GitHub Large Runner, với thông điệp hãy dùng instance build tốt hơn... Mục #9 của The Joel Test rằng "Hãy mua cho lập trình viên những thiết bị đắt nhất mà tiền cho phép" vẫn đúng y nguyên cả trong thời đại cloud.