使用_win32_winnt = 0x0501而不是0x400进行编译时,性能会下降

时间:2008-12-23 13:48:32

标签: performance winapi

是否有人知道将_win32_winnt从0x400更改为0x0501会对性能产生什么影响?

我正在VS2005上编译C ++。 我的应用程序非常面向通信,做了很多Winsock的工作。

2 个答案:

答案 0 :(得分:1)

值0x0400的目标是_WIN32_WINNT_NT4,它是以Windows 2000为目标的Windows SDk的较小子集。这意味着您要排除,忽略并丢弃大量已编译到可执行文件中的代码。所以是的,它会更快地执行。

所以,当你定义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

答案 1 :(得分:0)

我不知道任何与性能相关的特定问题,但如果您能提供有关您的表现如何受到影响的更多具体细节,则有人可能会提供帮助。

例如,您的网络吞吐量是否低于您以前的预期?