Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio MSVC链接器选项调试:fastlink导致程序执行速度减慢_Visual Studio_Visual C++_Linker_Visual Studio 2017 - Fatal编程技术网

Visual studio MSVC链接器选项调试:fastlink导致程序执行速度减慢

Visual studio MSVC链接器选项调试:fastlink导致程序执行速度减慢,visual-studio,visual-c++,linker,visual-studio-2017,Visual Studio,Visual C++,Linker,Visual Studio 2017,当将链接器开关debug:fastlink传递到Visual studio的链接器(版本14.11.25547-VS 2017更新15.5)时,在VS调试器中尝试运行程序时,我的程序执行总是会延迟5-7秒。我假设debug:fastlink选项是个问题,因为当我删除它时,一切正常。此外,如果尝试debug:full选项,则不会发生任何更改。似乎为了让VS debugger达到我的断点,需要向链接器传递其中一个选项。还有其他人有这个问题吗?有什么训练/解决方案吗?以防万一,这里是我的build.b

当将链接器开关debug:fastlink传递到Visual studio的链接器(版本14.11.25547-VS 2017更新15.5)时,在VS调试器中尝试运行程序时,我的程序执行总是会延迟5-7秒。我假设debug:fastlink选项是个问题,因为当我删除它时,一切正常。此外,如果尝试debug:full选项,则不会发生任何更改。似乎为了让VS debugger达到我的断点,需要向链接器传递其中一个选项。还有其他人有这个问题吗?有什么训练/解决方案吗?以防万一,这里是我的build.bat文件:

@echo off

set CompilerFlags= -DHANDMADE_SLOW_BUILD=1 -DHANDMADE_DEVELOPER_BUILD=1 -MT -Gm- -Z7 -nologo -Oi -Od -WX -W3 -GR -EHa-

set IncludePaths="w:\handmade\third party\sdl\include"

set LibraryPaths=/LIBPATH:"w:\handmade\third party\sdl\lib\x64"
set Libraries="SDL2.lib" "SDL2main.lib"
REM debug:fastlink/full options seem to slow the initial runtime of the app when trying to run in the debugger.
set LinkerFlags=-subsystem:CONSOLE -machine:x64 -incremental:no -nologo debug:fastlink -opt:ref

IF NOT EXIST build mkdir build
pushd build

REM 32-bit build
REM cl %CommonCompilerFlags% ..\handmade\code\win32_handmade.cpp /link -subsystem:windows,5.1 %CommonLinkerFlags%

REM 64-bit build
cl /c %CompilerFlags% -I %IncludePaths% w:\handmade\source\win32_handmade.cpp 
link %LinkerFlags% -out:win32_handmade.exe ../build/win32_handmade.obj %Libraries% %LibraryPaths%
copy /y  "w:\handmade\third party\sdl\lib\x64\SDL2.dll" "w:\handmade\build"
popd

您看到了吗:他们说“与名字查找相关的调试操作(如监视窗口中表达式求值的函数/数据按名称查找)所花费的时间略有增加,但只有非常大的二进制文件(>50MB)才值得注意。”也许你可以尝试对此发表评论,或者目前我的exe只有123 kb,所以不要认为这会导致任何问题,但我也会尝试在这些网站上发表评论,看看是否可以做些什么。这表明这是一个bug:“您好,感谢您报告此/fastlink问题。我们正在调查和研究一个解决方案,并期望在即将发布的15.6版本中缓解速度缓慢的问题。”(来自Simon链接到的最后一页)是的,看起来是这样的。非常烦人。