Debug & Release
От: Аноним  
Дата: 23.06.14 06:24
Оценка:
Привет всем!
Народ подскажите как это делается правильно.
Есть проект (расчетный модуль) на С++. Время его выполнения достаточно велико. Самое главное, что время выполнения в режиме компиляции Debug и в режиме Release различается примерно раз в 50 (STL блин). В режиме Release (компиляция с отладочной информацией) подчас понять, что происходит очень сложно, часть переменных оптимизировано и пр. и пр. Приходится выводить значения переменных в консоль и пр. В режиме Debug слишком должно ждать пока программа дойдет до нужной точки, каждый раз сидеть по 15 мин. откровенно достает. Как сделать, чтобы часть модулей (не представляющих интереса с точки зрения отладки) были скомпилированы в режиме Release, а там где пытаешься отлаживать в режиме Debug. Такое вообще возможно внутри одного проекта или необходимо разнести часть функциональности по разным проектам. Один проект будет создавать библиотеки, другие их использовать и играть опциями на уровне проектов? Идеально было бы опция препроцессора указывающая что конкретный модуль (или даже функцию?) в каком режиме скомпелировать. Среда отладки — VS 2013.
Re: Debug & Release
От: zaufi Земля  
Дата: 23.06.14 09:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет всем!

А>Народ подскажите как это делается правильно.
А>Есть проект (расчетный модуль) на С++. Время его выполнения достаточно велико. Самое главное, что время выполнения в режиме компиляции Debug и в режиме Release различается примерно раз в 50 (STL блин). В режиме Release (компиляция с отладочной информацией) подчас понять, что происходит очень сложно, часть переменных оптимизировано и пр. и пр. Приходится выводить значения переменных в консоль и пр. В режиме Debug слишком должно ждать пока программа дойдет до нужной точки, каждый раз сидеть по 15 мин. откровенно достает. Как сделать, чтобы часть модулей (не представляющих интереса с точки зрения отладки) были скомпилированы в режиме Release, а там где пытаешься отлаживать в режиме Debug. Такое вообще возможно внутри одного проекта или необходимо разнести часть функциональности по разным проектам. Один проект будет создавать библиотеки, другие их использовать и играть опциями на уровне проектов?

судя по твоему стилю "программирования" тебе придётся постоянно перетаскивать модули между "отладочным" проектом и "релизной" библиотекой %)

А>Идеально было бы опция препроцессора указывающая что конкретный модуль (или даже функцию?) в каком режиме скомпелировать.


нет! то, что у тебя написано в коде практически никак не влияет на то как его будут компилировать...

А>Среда отладки — VS 2013.

я конечно не очень в курсе, но всегда думал, что это, в первую очередь, среда разработки ))

на самом деле, тебе нужны вменяемые unit testы! тогда не придется "отлаживать в среде отладки", а будешь использовать ее как среду разработки
Re: Debug & Release
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 23.06.14 10:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет всем!

А>Народ подскажите как это делается правильно.
А>Есть проект (расчетный модуль) на С++. Время его выполнения достаточно велико. Самое главное, что время выполнения в режиме компиляции Debug и в режиме Release различается примерно раз в 50 (STL блин). В режиме Release (компиляция с отладочной информацией) подчас понять, что происходит очень сложно, часть переменных оптимизировано и пр. и пр. Приходится выводить значения переменных в консоль и пр. В режиме Debug слишком должно ждать пока программа дойдет до нужной точки, каждый раз сидеть по 15 мин. откровенно достает. Как сделать, чтобы часть модулей (не представляющих интереса с точки зрения отладки) были скомпилированы в режиме Release, а там где пытаешься отлаживать в режиме Debug. Такое вообще возможно внутри одного проекта или необходимо разнести часть функциональности по разным проектам. Один проект будет создавать библиотеки, другие их использовать и играть опциями на уровне проектов? Идеально было бы опция препроцессора указывающая что конкретный модуль (или даже функцию?) в каком режиме скомпелировать. Среда отладки — VS 2013.

Загляните подробно в настройки опций компилятора по режимам.
Эти Debug и Release — это сборники опций, которыми можно управлять по отдельности.
Увеличение времени растёт из-за #define, которые включают всякие проверки границ.
А оптимизация — это другой набор опций.
Можно делать свои кастомные режимы сборки, подбирая опции.
По файлам настраивать раздельно — вроде тоже было.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.