Dự đoán tốt nhất: Trình gỡ lỗi được I/O giới hạn, trong khi Bản phát hành bản phát hành là bộ xử lý giới hạn (trong trường hợp này).
Chúng tôi đã thực hiện đánh giá rộng rãi trên hệ thống xây dựng của mình - rất nhiều dự án lớn, một số dự án nhỏ. Các bản dựng DEBUG
ghi nhiều thông tin *.pdb
, lớn hơn nhiều *.obj
tệp (để biết thêm thông tin gỡ lỗi), v.v. Kết quả là hoạt động đĩa nhiều hơn. Này được nhấn mạnh hơn nữa nếu bạn có rất nhiều "literals" trong mã nguồn của bạn (bảng biểu, biểu tượng, chuỗi literals) vv
Ngược lại, RELEASE
xây dựng viết ra nhiều nhỏ *.obj
tập tin, và doesn không bận tâm viết cơ sở dữ liệu "gỡ lỗi" (nếu bạn biên dịch RELEASE
với các công tắc thông thường). Tuy nhiên, mối liên kết trong các bản dựng RELEASE
phải thực hiện tối ưu hóa của nó và các công việc đáng kể khác mà không được thực hiện trong DEBUG
, do đó, nó bị ràng buộc bởi bộ vi xử lý. Điều này sẽ bị phạt thêm một thời gian cho RELEASE
nếu bạn "biên dịch thành tối đa tốc độ/kích thước" với các thiết bị chuyển mạch khó kết nối nhất.
(Tuy nhiên, có, RELEASE
xây dựng vẫn phải là I/O cập nhật địa chỉ trong tệp thực thi được xây dựng trên đĩa, nhưng vì tệp thực thi nhỏ hơn rất nhiều trong bản dựng RELEASE
, bạn ít hơn, vì vậy các I/O phạt trong RELEASE
xây dựng không phải là càng nhiều càng tốt cho DEBUG
xây dựng.)
Bạn đang quan sát một 3x "RELEASE
đắt hơn DEBUG
". Đó là về quyền đối với một số dự án mà tôi/O-ràng buộc với rất nhiều mẫu, nhiều biểu tượng và literals, vv Kiểm tra ổ đĩa của bạn - là họ nhận được đầy đủ, hoặc chỉ "chậm ổ đĩa", và/hoặc với một số lĩnh vực xấu ? Những người sẽ làm cho nó tồi tệ hơn (chậm hơn) cho các xây dựng DEBUG
.
Có, các bản dựng khác phải là hình thức khác, với "RELEASE
thứ gì đó như 3x đắt hơn DEBUG
". Những bản xây dựng đó là bộ xử lý/liên kết ràng buộc, chứ không phải là I/O-bound.
[CẬP NHẬT], tôi thấy trong nhận xét-on-the-câu hỏi rằng điều này là dành cho "thư viện tĩnh, không liên kết". Đó là khá nhiều trường hợp xấu nhất-kịch bản cho một hình phạt thời gian cho I/O (rất nhiều hoạt động đĩa, không có liên kết), và không có một bộ xử lý-phạt (vì không có tối ưu hóa đang được thực hiện). Vì vậy, nếu bạn có 3x "DEBUG
-is-slow-than-RELEASE
", đó có thể là xấu như nó có thể nhận được (cho dự án này), và đó không phải là điển hình. Khi bạn thêm tùy chọn liên kết, số RELEASE
sẽ chậm hơn.
Bạn có đang sử dụng các tiêu đề được biên dịch sẵn trong cả hai không? –
Tùy chọn xây dựng là gì? –
Có PCH trên cả hai. Các tùy chọn xây dựng bên cạnh/I/D PCH là:/Od/Gm/EHsc/RTC1/MDd/W4/nologo/c/Wp64/ZI/TP/lỗiReport: nhắc/wd4018/Zm200. Vâng, tôi đã tự hỏi nếu chúng tôi đã "viết một số tập tin tùy chọn lớn" trong đó. Thời gian chỉ là xây dựng thư viện để không có liên kết. – Philip