簡體   English   中英

C ++定義了VS中“更好”的發布模式構建

[英]C++ defines for a 'better' Release mode build in VS

我目前使用以下預處理器定義,以及各種優化設置:

  • WIN32_LEAN_AND_MEAN
  • VC_EXTRALEAN
  • NOMINMAX
  • _CRT_SECURE_NO_WARNINGS
  • _SCL_SECURE_NO_WARNINGS
  • _SECURE_SCL = 0
  • _HAS_ITERATOR_DEBUGGING = 0

我的問題是SOers使用,添加,定義的其他東西是什么,以便從VS C ++(2008,2010)獲得盡可能高效的發布模式

順便說一句,我已經嘗試了PGO等,它確實有點幫助,但沒有任何與GCC相提並論,我也沒有使用流,C ++我說它更像是C但是使用模板和STL算法等等

現在看起來非常簡單的代碼段,與GCC相比,使用02運行linux(2.6+內核)的等效x86機器所產生的性能相比顯得蒼白無力。

側注:我相信很多問題都與MS提供的STL版本(Dinkum)直接相關。 人們可以請詳細說明使用STLPort等與VS C ++的經驗。

我沒看到如何包含:

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS

..給你一個更好或更高性能的構建。 您所做的只是禁用有關MS CRT已棄用功能的警告。 如果你這樣做是因為你知道自己在做什么並且需要平台不可知代碼,否則我會重新考慮。

更新 :此外,編譯器只能做這么多。 如果你對現有的熱點進行檢測和修復,而不是試圖從編譯和鏈接階段獲得微小的百分比(如果那樣),我會打賭你會得到更高性能的代碼。

UPDATE2 :根據MSDN編譯版本構建時無法使用_HAS_ITERATOR_DEBUGGING。 WIN32_LEAN_AND_MEAN VC_EXTRALEAN (可能是NOMINMAX雖然性能不是禁用此功能的主要原因)可能會給你一些性能提升,盡管所有其他都有可疑的價值。 您應該支持正確的快速代碼( 可能 - 我強調可能)稍快但風險更高的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM