Тест производительности между режимом отладки и выпуска - PullRequest
2 голосов
/ 01 января 2012

Я тестирую производительность. Программа получает огромные байты с другой стороны через TCP-соединение и анализирует целевую структуру.

Если я попробую это в Debug (F5), откладывается очень серьезно. Но если я попробую его в Release (Ctrl + F5), он будет работать очень плавно. Я проверяю ситуацию с помощью WireShark, инструкция обновления окна TCP сообщает мне о состоянии принимающей стороны.

Интересно, хочу ли я создать программу для конечного пользователя. Программа должна работать как в режиме отладки, так и в режиме выпуска?

Размер данных действительно большой, а интервал передачи очень короткий. В этом случае разница в производительности между отладкой и выпуском будет очень четкой? Я никогда не видел такой разницы.

Ответы [ 3 ]

1 голос
/ 22 ноября 2015

Этот вопрос объединяет две разные проблемы.Одним из них является сборка Debug против Release.Сборки отладки медленнее по многим причинам, все они направлены на облегчение отладки.

Вторая проблема заключается в том, что запуск приложения в отладчике (F5), а не в отладчике (Ctrl + F5) может повлиять на производительность.Куча Windows выполняет дополнительные проверки при запуске в отладчике, обработка OutputDebugString и загрузка модулей могут занять больше времени и т. Д.

Эти две проблемы полностью ортогональны.Вы можете запустить сборку Release в отладчике или запустить сборку Debug не в отладчике.

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

Если проблема в том, что сборки, запускаемые под отладчиком, работают медленнее, чем don 'делать это, когда вы заботитесь о производительности.После этого вы всегда можете подключить отладчик, чтобы избежать замедления или вообще не подключать отладчик.

0 голосов
/ 01 января 2012

Вы должны программировать только с режимом Release. Это действительно единственная версия вашего приложения, которая должна быть доступна конечному пользователю. Режим отладки только для "домашнего хозяйства" и ну ... отладки. Не совсем проблема пользователя.

0 голосов
/ 01 января 2012

Когда вы публикуете свое приложение, оно должно быть скомпилировано только в режиме «Release».Режим отладки используется для «отладки» во время разработки.

...