Tôi có một mã C++ mà tôi đang biên dịch bằng VC7 và mất nhiều thời gian để xây dựng nó. Có cách nào tôi có thể hồ sơ nó và tìm thấy lý do tại sao nó là dành thời gian để xây dựng?Thời gian biên dịch hồ sơ
Trả lời
Trong Visual Studio 2008, có một cài đặt để bật thời gian xây dựng. Nó có thể có mặt ở đó trong VC7 cũng ...
Tools
/Options
/Projects and Solutions
/VC++ Project Settings
/Build Timing:
Yes
này áp dụng cho các dự án C++, trong đó (như của VS2008) không sử dụng MSBuild. Đối với dự án MSBuild dựa trên (chẳng hạn như C#), bạn muốn tăng tính cách rườm rà:
Tools
/Options
/Projects and Solutions
/Build and Run
/MSBuild project build output verbosity
Theo mặc định, nó được thiết lập để "tối thiểu".
Mã nguồn trên mạng phải không? Điều này đôi khi làm chậm quá trình biên dịch.
Sử dụng precompiled headers
Thật không may, các mẫu chỉ được tạo bởi các đơn vị dịch hoàn chỉnh, không phải trong các tiêu đề được biên dịch trước. Khi tôi cố gắng sử dụng các tiêu đề biên dịch sẵn cho dự án mẫu nặng của tôi, chúng chỉ cải thiện thời gian biên dịch từ 0-5% (dù có bật hoặc tắt tối ưu hóa). Nếu C++ 17 mang đến cho chúng ta các mô-đun, chúng có thể giúp ... – idupree
Tôi đoán là sẽ rất khó để có được kết quả hữu ích từ lược tả. Bạn có thể xem xét thời gian tạo của từng tệp .obj và kiểm tra xem có bất kỳ tệp nào đặc biệt chậm hay không, nhưng tôi nghi ngờ điều này là đúng.
Bạn đã trải qua các tùy chọn trình biên dịch như các tiêu đề được biên dịch trước để xem những cải tiến nào cung cấp? Tương tự, tắt trình tối ưu hóa ở nơi không yêu cầu có thể tăng tốc độ xây dựng đáng kể. Lời khuyên của tôi là dành chút thời gian để thử một vài kịch bản 'nếu như'.
Nếu mã có định dạng mẫu, thì bạn có thể thử làm hồ sơ trình bày mẫu. Steven Watanabe đã đưa ra các profiler và nếu tôi nhớ chính xác nó đã được coi là làm việc với VS (không biết phiên bản).
+1, các mẫu có thể đạt thời gian biên dịch tồi tệ, ngay cả với các tiêu đề được biên dịch trước –
Bạn có thể thử nếu có thể trong trường hợp của bạn là thủ thuật của #include all .cpp files into a single compilation unit, chỉ nhằm mục đích kiểm tra xem bạn có nhiều chi phí từ nhiều tệp và bao gồm nhiều tệp hay không.
Nếu mã của bạn sử dụng rộng rãi mẫu, bạn có thể quan tâm đến Templight, một công cụ do nhóm nghiên cứu hungarian phát triển để gỡ lỗi và lập sơ đồ siêu mẫu C++ (paper). Có vẻ như rất hứa hẹn, nhưng tôi không chắc chắn công cụ có sẵn để tải xuống hay không ...
Templight đang trên đường trở thành tính năng dựng sẵn trong tiếng kêu. Phiên bản hiện tại và công cụ trực quan có thể tìm thấy tại đây: http://plc.inf.elte.hu/templight/ – jmihalicza
- 1. C++ g ++ llvm-clang trình biên dịch hồ sơ
- 2. C++ Biên dịch chuỗi thời gian biên dịch
- 3. Hằng số thời gian biên dịch Flex - Dấu thời gian
- 4. Hằng số mảng thời gian biên dịch
- 5. Lỗi thời gian biên dịch Qt. .
- 6. Hệ điều hành biên dịch thời gian
- 7. Cách tính thời gian biên dịch gcc?
- 8. Chạy PublicResXFileCodeGenerator tại thời gian biên dịch
- 9. offsetof tại thời gian biên dịch
- 10. Nhận thời gian biên dịch JAR
- 11. Hằng số thời gian biên dịch Clojure
- 12. Giữ hồ sơ về thời gian đăng nhập và thời lượng phiên - Java - Spring Security
- 13. Mẫu hồ sơ Haskell
- 14. Hồ sơ Maven
- 15. So sánh thời gian biên dịch giữa Windows GCC và trình biên dịch MSVC
- 16. Thời gian biên dịch chậm với Boost + GCC + header được biên dịch trước
- 17. Phát hiện phiên bản trình biên dịch trong thời gian biên dịch
- 18. Cách giảm thời gian biên dịch với các mẫu C++
- 19. Trình biên dịch Java tại thời gian chạy
- 20. Thực hiện chú thích java tại thời gian biên dịch
- 21. Chuyển đổi mã Java tại thời gian biên dịch
- 22. Bản đồ hai loại tại thời gian biên dịch
- 23. Biên dịch thời gian đệ quy và điều kiện
- 24. Thời gian kiểm tra biên dịch tồn tại của stdint.h
- 25. Tắt đăng nhập Java tại thời gian biên dịch
- 26. thời gian biên dịch xem MVC kiểm tra với msbuild
- 27. ClassNotFoundException trong thời gian chạy nhưng ứng dụng biên dịch
- 28. Tạo số duy nhất tại thời gian biên dịch
- 29. Tạo tham số mẫu tại thời gian biên dịch
- 30. mô phỏng thời gian biên dịch phản chiếu trong C++
Có và nó nằm dưới sự kiểm soát nguồn rõ ràng. – Naveen
Sử dụng chế độ xem ảnh chụp cục bộ để tạo. –
Không bao giờ sử dụng chế độ xem động cho mã nguồn. đó là cách rắc rối hơn giá trị của nó. – shoosh