Здравствуйте, chipmunk, Вы писали:
C>заметил что такое проявляется только когда запускаю со студии (F5) C>когда отдельно из проводника — всё быстро отрабатывает как нужно
Если вы ничего особенного в свойствах проекта не настраивали, то debug от release отличается оптимизацией и символами DEBUG (или _DEBUG)
Вряд ли оптимизация может замедлить сильно программу и тем более отожрать памяти.
Предположение: у вас где-то перепутано #ifdef DEBUG и #ifndef DEBUG
или просто где-то в условную компиляцию завернуто что-то тормозное.
Запуск по F5 и из проводника отличается двумя вещами — текущим каталогом по умолчанию и наличием отладчика.
Проверьте, как поведение программы зависит от текущего каталога. Может ли ваша программа обнаруживать отладчик и изменять поведение?
Ну и последнее, конечно, — баг компилятора. Хотя тогда скорость не должна зависеть от способа запуска.
Здравствуйте, dmitry_npi, Вы писали:
_>Запуск по F5 и из проводника отличается двумя вещами — текущим каталогом по умолчанию и наличием отладчика. _>Проверьте, как поведение программы зависит от текущего каталога. Может ли ваша программа обнаруживать отладчик и изменять поведение?
Ну и предпоследнее — разная временная диаграмма.
В жестоко многопоточных приложениях можно наблюдать разные чудеса. Например, голодания.
Отладчик вносит толику торможения в систему, и эта толика может существенно сдвинуть временную диаграмму.
Ну и пред-предпоследнее. Релизная сборка с отладочным выводом.
Без отладчика работает, как обычно. Под отладчиком возникают небольшие тормоза. И см.выше.
Ну и пред-пред-предпоследнее. Аппаратные исключения (SEH), которые зачем-то обрабатываются программой, вместо того, чтобы let it crash. Отладчик, разумеется, реагирует нервно.
Почему АИ возникают в релизе, а не в дебаге — причин множество, сами знаете.
_>Ну и последнее, конечно, — баг компилятора. Хотя тогда скорость не должна зависеть от способа запуска.
"Оптимизация скорости" (/O2) у VC — стрёмная вещь. Может быть, действительно, какой-нибудь баг кодогенератора прокрался.
TODO: посмотреть в настройках проекта, и вместо /O2 поставить /Ox.
Здравствуйте, chipmunk, Вы писали:
C>заметил что такое проявляется только когда запускаю со студии (F5) C>когда отдельно из проводника — всё быстро отрабатывает как нужно
Минуточку, из студии следует запускать по Ctrl + F5 (без отладки)...
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, okman, Вы писали:
O>>Минуточку, из студии следует запускать по Ctrl + F5 (без отладки)...
К>А смысл? Чем тогда будет отличаться запуск из студии от запуска из проводника, кроме (возможно) разных рабочих каталогов?
Ну так F5 (по умолчанию) — Start Debugging. Поэтому и тормоза, наверное...
Здравствуйте, okman, Вы писали:
O>Ну так F5 (по умолчанию) — Start Debugging. Поэтому и тормоза, наверное...
Это не объясняет, почему медленнее дебажной версии. (Телепатически надеюсь, что сравнивалось с запуском дебажной версии из-под отладчика).
Здравствуйте, Кодт, Вы писали:
К>"Оптимизация скорости" (/O2) у VC — стрёмная вещь. Может быть, действительно, какой-нибудь баг кодогенератора прокрался. К>TODO: посмотреть в настройках проекта, и вместо /O2 поставить /Ox.
можно подробнее про это и есть примеры когда O2 глючит, а Ox нет?
и в какой версии?
Здравствуйте, chipmunk, Вы писали:
C>И памяти кушает тоже меньше. Как такое может быть ?
Такого быть не может!
Вместо экзотических причин, упомянутых выше (многопоточность, ошибки оптимизации), я ставлю на "user error".
Или меряете неправильно, или данные различаются (включая упомянутые неинициализированные данные).
Может соберете простенький пример, демонстрирующий Вашу ситуацию?