how frequently does the letter н appear in:
q: release версия проекта в visual studio 2008 работает не правильно. почему? столкнулся с проблемой. когда проверяю прогу на работоспособность в debug версии, всё работает как задумывалось. как только собираю проект в release версии и запускаю, появляются разные глюки, которых не было. программу плющит не подетски. почему это происходит и как это исправить? это проблема компилятора?
a: по опыту, основная причина ошибок, проявляющихся только в release-версии, связана с работой с динамической памятью. запустите программу в debug-версии в отладчике и внимательно посмотрите на сообщения, в частности, на предупреждения - не утекает ли у вас память? ведь очень многие компиляторы оборачивают, например, операторы new/delete в отладочной версии.
вторая часть ошибок обычно связана с многопоточностью. отладочная информация (да еще и подсоединенный отладчик) несколько замедляют работу программы, причем как-то удивительно по-разному для разных потоков(нитей), и поэтому взаимоблокировки, например, в отладочной версии не проявляются.
еще одна подсказка - попробуйте собрать версию release без оптимизации. т.е. все опции как в debugе, но без собственно отладочной информации. посмотрите, что изменится. и наконец, соберите еще один вариант, debug с оптимизацией как в release, и запустите и без отладчика и в отладчике. такие нехитрые приемы в свое время мне очень помогали.
успехов!
a: еще одна возможная причина: какие-то переменные не инициализированы в релизе. дебаг пишет нули, релиз - мусор.
a: в релизной версии может быть иная логика работы, чем в отладочной как минимум из-за

*

*оптимизирующей компиляции,

*меньшей реактивности,

*отсутствия отладочного кода.

проверить в чем причина можно обычными методами отладки:

*

*попробовать разные опции компиляции,

*попробовать вставлять задержки,

*добавить отладочные печати.

и кроме того, вполне возможно, что проектные установки для release и debug отличаются в чем-то существенном: не та библиотека линкуется в release, что в debug и т.п.
a: видел пример когда изменение переменной, находящейся в критической секции, выносилось за ее пределы. можно попробовать все переменные, к которым имеют доступ несколько потоков, как volatile.
upd
нашел этот пример тыц
a: я сталкивался с такими проблемами.

*

*в одной программе я использовал трассировку стека. в дебаге всё было ok, в релизе нужный мне метод в стеке просто отсутствовал. вылечилось пометкой метода атрибутом methodimpl в опцией noinlining

*в различной конфигурации компилятор выдавал слегка разные значения какой-то математической функции, вроде бы синуса. при обработке больших наборов данных это накапливалось и было заметно.

user
The total number of "н"s in that passage is one hundred and twelve.
assistant