2013-07-24 48 views
5

Đây là tập tin dơi của tôi.Tại sao việc biên dịch thông qua MSBuild mất nhiều thời gian hơn thông qua IDE?

call "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\rsvars.bat" 
msbuild.exe C:\Work\Project1.dproj /t:Rebuild /p:Config=Debug;Platform=Win32 

Điều này có vẻ hoạt động tốt; tuy nhiên, nó mất 12 phút để xây dựng. Cùng một cấu hình/nền tảng kết hợp mất 2 phút 30 giây khi thực hiện một xây dựng đầy đủ trong IDE. Tôi đã không thành công trong việc xác định nguyên nhân của sự chậm lại. Bất kỳ ý tưởng hoặc cài đặt nào tôi nên xem xét?

EDIT: Tôi đã sử dụng IDEFixPack 5.3 và nhận thời gian xây dựng ~ 2,5 phút. Loại bỏ các kết quả IDEFixPack trong 12 phút cũng được xây dựng trong IDE.

+0

Làm cách nào chúng tôi có thể tái tạo điều này? –

+1

Thật không may là tôi không biết. Hôm nay là lần đầu tiên tôi chơi với msbuild vì vậy tôi không biết đủ về điều này để cung cấp một kịch bản tái sản xuất. Tôi có thể thử với một ứng dụng mẫu, nhưng các điều kiện sẽ khác nhiều so với ứng dụng thương mại của tôi có 3.560.000 dòng. Tôi đã không chắc chắn nếu có được biết đến chuyển mạch trình biên dịch trong msbuild mà tôi nên xem xét. –

+0

Tôi quên một chi tiết liên quan đến IDE. Tôi sử dụng gói sửa lỗi IDE, nhưng tôi chưa bao giờ thấy sự khác biệt về hiệu năng ở bất kỳ nơi nào gần đây khi nó được bật so với bị vô hiệu hóa mặc dù nó có thể chiếm một phần rất nhỏ của sự khác biệt. –

Trả lời

2

Theo đề xuất của David Heffernan tôi đã xóa IDEFixPack và tôi thấy 12 phút xây dựng giống như tôi làm với msbuild.

+1

+1 Trong trường hợp đó bạn sẽ có thể sử dụng fastdcc của Andy để tăng tốc dòng lệnh của bạn xây dựng –

+0

Tuyệt vời. Tôi không biết điều đó. Tôi chắc chắn sẽ điều tra. Quá trình xây dựng của chúng tôi đã trở nên hơi phức tạp. Chúng tôi sử dụng FinalBuilder hoạt động tốt, nhưng các hành động xây dựng Delphi dường như mất cài đặt số phiên bản tự động gia tăng và số phiên bản thoát ra khỏi Whack. Tôi có một tiện ích để cập nhật các thiết lập phiên bản dproj trước khi gọi msbuild. Tôi đã tìm thấy các bài đăng của bạn trên StackOverflow hữu ích nhất để thực hiện chuyển đổi. Cảm ơn! –

+0

Rất vui khi được giúp đỡ một chút! –

1

Tôi đoán có một số gói mà IDE bằng cách nào đó có thể tìm thấy dcu biên dịch trong đường dẫn và MSBuild chỉ có thể tìm nguồn.

Không MSBuild xuất nhật ký biên dịch mà bạn có thể kiểm tra hoặc đăng ở đây?

+2

Tại sao điều đó lại xảy ra? Toàn bộ điểm của xây dựng dựa trên msbuild mới là dòng lệnh và IDE xây dựng sử dụng các đường dẫn tìm kiếm giống hệt nhau. Tôi cảm thấy rằng điều này sẽ tốt hơn như một bình luận. –

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