C++ определяет для 'лучшей' сборки режима Release в 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) быть максимально производительной?

btw, я попробовал PGO и т.д., он действительно помогает немного, но ничто, что приходит к четности с GCC, также я не использую потоки, C++, я говорю о больше как C, но использую шаблоны и алгоритмы STL и т.д.

Как есть теперь очень простые сегменты кода бледнеют по сравнению wrt производительность по сравнению с тем, на чем производит GCC, говорят что эквивалентная x86 машина под управлением Linux (2.6 + ядро) использование 02.

Заметка на полях: Я полагаю, что много проблем имеет отношение непосредственно к версии STL (Истинной) обеспеченный MS. Могли люди уточнять события с помощью STLPort и т.д. с VS C++.

6
задан 17 March 2010 в 05:59
поделиться

1 ответ

Я не понимаю, как включение:

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS

.. дает вам лучшую или более производительную сборку. Все, что вы делаете, - это отключаете предупреждения об устаревших функциях MS CRT. Если вы делаете это, потому что знаете, что делаете, и требуете нормального кода, независимого от платформы, в противном случае я бы пересмотрел.

ОБНОВЛЕНИЕ : Кроме того, компилятор может делать только некоторые. Я готов поспорить, что вы получите более производительный код, если настроите и исправите существующие горячие точки, вместо того, чтобы пытаться получить крошечный процент (если таковой) выигрыша от фазы компиляции и компоновки.

UPDATE2 : _HAS_ITERATOR_DEBUGGING нельзя использовать при компиляции сборок выпуска в любом случае в соответствии с MSDN . WIN32_LEAN_AND_MEAN VC_EXTRALEAN (и, вероятно, NOMINMAX , хотя производительность - не главная причина для отключения этого) может дать вам некоторый прирост производительности, хотя все остальные имеют сомнительную ценность. Вы должны отдавать предпочтение правильному быстрому коду (, возможно, - я подчеркиваю, возможно) немного более быстрому, но более подверженному риску коду.

1
ответ дан 17 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: