tôi đã gặp phải những đoạn như sau:gỡ lỗi vs hiệu suất phát hành
“Debug vs phát hành thiết lập trong IDE khi bạn biên dịch mã của bạn trong Visual Studio làm cho hầu như không có sự khác biệt với hiệu suất ... mã được tạo ra là hầu như giống nhau. Trình biên dịch C# không thực sự thực hiện bất kỳ tối ưu hóa nào. Trình biên dịch C# chỉ phun ra IL ... và tại thời gian chạy nó là JITer thực hiện tất cả các tối ưu hóa. JITer không có chế độ Debug/Release và tạo ra sự khác biệt lớn về hiệu năng. Nhưng điều đó không có key off cho dù bạn chạy Debug hoặc Thả cấu hình của dự án của bạn, đó là các phím tắt cho dù một trình gỡ lỗi được đính kèm.”
Nguồn là here và podcast là here.
Ai đó có thể hướng dẫn tôi đến một bài viết của Microsoft có thể thực sự chứng minh điều này không?
Googling "C# debug vs hiệu suất phát hành" chủ yếu là trả về kết quả nói "gỡ lỗi có rất nhiều hiệu suất trúng", "phát hành được tối ưu hóa", và "không triển khai debug để sản xuất" .
bản sao có thể có của [Hiệu suất khác biệt giữa bản dựng gỡ lỗi và bản phát hành] (http://stackoverflow.com/questions/4043821/performance-differences-between-debug-and-release-builds) –
Với .Net4 trên Win7-x86 , Tôi có một chương trình giới hạn CPU mà tôi đã viết chạy nhanh gần gấp 2 lần so với gỡ lỗi không có xác nhận/etc trong vòng lặp chính. – Bengie
Ngoài ra, nếu bạn quan tâm đến việc sử dụng bộ nhớ, có thể có sự khác biệt lớn. Tôi đã nhìn thấy một trường hợp một dịch vụ Windows đa luồng được biên dịch trong chế độ gỡ lỗi được sử dụng 700MB cho mỗi luồng, so với 50MB cho mỗi luồng trong bản dựng Bản phát hành. Gỡ lỗi xây dựng nhanh chóng hết bộ nhớ trong điều kiện sử dụng điển hình. –