2009-07-29 65 views
5

Một ứng dụng kế thừa mà tôi đang làm việc trên bản cập nhật mất ~ 2 giờ để xây dựng. Dự án có khoảng 170 dự án với 150 hoặc không được quản lý C++ và 30 C# khác .Net 2.0.Cách tăng tốc thời gian xây dựng? (C#/Unmanaged C++)

Một số đề xuất về cách cải thiện thời gian xây dựng cho một thứ như thế này là gì?

+1

câu hỏi tương tự đã được hỏi trước đây. Thực hiện tìm kiếm "doubtibuild" để tìm một số người trong số họ. – crashmstr

+0

Bạn có cần phải xây dựng nó từ đầu một cách thường xuyên, hay các bản dựng tăng chậm? –

+0

Chúng tôi được yêu cầu xây dựng từ đầu khá thường xuyên. Bất cứ khi nào thay đổi được thực hiện là QC, chúng tôi yêu cầu một bản dựng đầy đủ. – Kyle

Trả lời

8

Tập trung vào các dự án C++ - họ đang gần như đảm bảo được cống thời gian lớn nhất cho tòa nhà.

Một số lời khuyên về việc C++ xây dựng lần xuống:

  • Hãy chắc chắn rằng bạn chỉ bao gồm tiêu đề mà bạn cần trong các dự án C++!
  • Sử dụng tờ khai chuyển tiếp bất cứ khi nào có thể trong tiêu đề thay vì bao gồm tiêu đề khác
  • Sử dụng/MP chuyển sang xây dựng song song, khi có thể
  • Sử dụng trừu tượng một cách hiệu quả
  • Hãy sparing trong việc sử dụng các chức năng nội tuyến, vì đây chi phí nhiều hơn tại thời gian biên dịch
  • Lấy phụ thuộc đúng, vì vậy bạn không xây dựng thường xuyên hơn mà yêu cầu
  • Sử dụng tiêu đề trước khi biên soạn một cách thích hợp

Bên cạnh đó, nếu bạn đang nói 2 giờ build lần, thường có một đơn giản, rẻ tiền (một cách hình ảnh lớn) giải pháp, cũng như:

  • Nâng cấp phần cứng của bạn để giúp giảm thời gian tính toán
+0

100% đồng ý. Trình biên dịch nào bạn sử dụng? Kiểm tra các hệ thống lưu trong bộ nhớ cache phù hợp (ví dụ:ccash cho gcc) SSD cho máy chủ xây dựng có giá trị nhìn vào –

+0

Tôi chủ yếu sử dụng MSVC, nhưng hầu hết các đối số ở trên là các chiến lược tổng hợp C++ mục đích chung. Câu hỏi có lẽ là MSVC cụ thể, mặc dù, vì nó đã được trộn C++ & C#. –

2

Bạn có thể thử các phân phối xây dựng hệ thống Incredibuild: http://www.xoreax.com/visual_studio.htm

+0

Tính năng này có hoạt động để liên kết không? Một số thời gian xây dựng khó chịu của tôi là do liên kết. –

0

tạo nhiều giải pháp cho dự án mà chỉ bao gồm các tập con có liên quan của dự án và để lại một giải pháp siêu cho phát hành, vv

4

Nếu bạn cài đặt IncrediBuild trên máy tính mà cần phải xây dựng nó phân phối quá trình xây dựng trong tất cả các máy. Nếu bạn thực sự muốn chỉ cần ném phần cứng vào vấn đề bạn có thể thiết lập một vài máy chuyên dụng chỉ phục vụ như khách hàng IncrediBuild.

Ở một quy mô khác, hãy đảm bảo rằng mọi dự án đều có các tiêu đề được biên dịch trước được định cấu hình chính xác.

2

Bạn có thể sử dụng công cụ như lint để xem liệu bạn có bao gồm các tệp dự phòng trong các dự án C++ của mình hay không.

Ngoài ra còn có một bài viết tuyệt vời về chủ đề này tại Games from Within.

+0

Hmm trông khá thú vị. Cảm ơn bạn. – Kyle

Các vấn đề liên quan