Câu trả lời:
Scott Gu cũng đăng về những gì ảnh hưởng đến tốc độ xây dựng, chủ yếu chỉ vào các tài nguyên I / O như đĩa cứng.
Yếu tố mà tôi tìm thấy tạo ra sự khác biệt lớn nhất không phải là yếu tố vật lý, mà là yếu tố phần mềm: Bạn đã cài đặt phần mềm chống vi-rút nào?
Một số sản phẩm chống vi-rút không xử lý tốt việc phát triển phần mềm - chúng thấy tất cả các tệp ứng dụng này được viết lại, nghi ngờ chơi xấu và quét lại mọi tệp mỗi lần.
(Xem /programming/1170078/is-it-THER-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 để biết thêm.)
Mặt khác, nếu bạn muốn cải thiện hiệu suất của một máy hiện có, không có gì vượt qua tối đa bộ nhớ khả dụng để giành chiến thắng nhanh chóng.
Đây là một số nghiên cứu hay của Scott Hanselman về việc sử dụng nhiều CPU cho MSBUild. Việc tăng tốc là khá ấn tượng.
Chỉnh sửa: Tuy nhiên, tôi cần lưu ý rằng để có trải nghiệm tốt khi sử dụng Visual Studio, bạn cần nhiều RAM. :)
Trải nghiệm cá nhân của tôi với cơ sở mã C ++ có kích thước hợp lý:
Bộ xử lý: Pentium 4 HT 3.06 GHz
Bộ nhớ: RAM 1 GB DDR (PC 2100, vì vậy 333 MHz)
Đĩa: ổ cứng 7200 RPM (UDMA 100, nếu phục vụ bộ nhớ)
Thời gian biên dịch: 50 phút
Bộ xử lý: Core i7 720QM (8 bộ xử lý logic) ở tốc độ 1.6 GHz, tăng tốc lên 1.73 GHz khi tất cả các lõi đang hoạt động
Bộ nhớ: RAM 8 GB DDR3 ở 1066 MHz
Đĩa: Ổ cứng 7200 RPM (SATA 2)
Thời gian biên dịch: 4 phút (với / MP )
Kết luận: Càng nhiều bộ xử lý, merrier - ngay cả ở tốc độ xung nhịp tương đối thấp. Một ổ SSD sẽ cải thiện nhiều lần hơn nữa, nhưng từ việc quan sát các thông báo biên dịch, tôi nghi ngờ nó sẽ cải thiện nó hơn 30 giây hoặc lâu hơn.
Theo tôi nhớ chủ yếu là Bộ xử lý và Bộ nhớ. Một google nhanh chóng đã tiết lộ các tinh chỉnh khác nhau có thể cải thiện thời gian biên dịch.
Joel gần đây đã đăng về tác dụng của Solid State Disks đối với các biên dịch ở đây . Tốc độ đĩa thường không cải thiện đáng kể thời gian biên dịch. Tuy nhiên, theo điều này, nó có tác dụng như được chỉ ra bởi lyngbym .
Để xây dựng các chương trình C ++, yếu tố số 1 trước tất cả các yếu tố khác là cấu trúc - nếu mã nguồn được cấu trúc theo chiều dọc, nó sẽ có tác động tàn phá đến thời gian xây dựng, đặc biệt là các bản dựng tăng dần. Tôi đã tái cấu trúc cục bộ một vài phần của dự án để cải thiện đáng kể trên Xeon lõi tứ. 18 tháng sau và họ (những người sở hữu dự án) vẫn không thể phù hợp với thời gian xây dựng đồng hồ treo tường của tôi ngay cả trên các máy Core i7.
Hiệu ứng (tích cực hoặc tiêu cực) của bố cục phần mềm của bạn nhân lên trên mỗi thành viên trong nhóm của bạn và mọi công trình họ thực hiện.
Xoreax IncrediBuild là một hệ thống xây dựng phân tán đã tạo ra một sự cải tiến lớn về thời gian biên dịch nơi tôi làm việc. (Thật không may, thời gian liên kết vẫn còn khá dài, đặc biệt là các bản phát hành sử dụng tối ưu hóa toàn bộ chương trình và tạo mã thời gian liên kết, nhưng đó là điều được mong đợi.)