Производительность снижается при компиляции с _win32_winnt = 0x0501 вместо 0x400 - PullRequest
1 голос
/ 23 декабря 2008

Кто-нибудь знает о каких-либо последствиях для производительности от изменения _win32_winnt с 0x400 на 0x0501?

Я компилирую C ++ на VS2005. Мое приложение ориентировано на коммуникацию и выполняет много работы с Winsock.

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Значение 0x0400 предназначено для _WIN32_WINNT_NT4, который является меньшим подмножеством Windows SDk для Windows 2000. Это означает, что вы исключаете, игнорируете и выбрасываете большой объем кода, который был бы скомпилирован в ваш исполняемый файл. Так что да, он будет выполняться быстрее.

Итак, когда вы определяете 0x0501, вы говорите: да, дайте мне все эти богатые дополнительные преимущества, которые имеют заголовочные файлы для Windows XP. Однако ваше приложение, скорее всего, не будет работать на Windows 2000 из-за неудачного импорта. Поскольку вы вносите всю эту лишнюю упитанность, время компиляции будет меньше, а код будет больше, исполняемый файл будет больше, и, скорее всего, он будет медленнее.

Вы можете найти больше информации здесь по этим темам:

http://blogs.msdn.com/b/oldnewthing/archive/2007/04/11/2079137.aspx

http://msdn.microsoft.com/en-us/library/aa383745.aspx

0 голосов
/ 23 декабря 2008

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

Например, пропускная способность вашей сети ниже, чем вы думаете, была?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...