【发布时间】:2020-12-13 03:53:22
【问题描述】:
我有一个项目在 VS2017 专业版,版本 15.9.7。 项目构建输出为 program.exe。
我已对其进行了重命名并对其进行了更改以创建静态库 program.lib。我保持 program.lib 的配置与我之前创建的 program.exe 的配置非常相似。 这里我们有旧 program.exe 和新 program.lib 的配置标志(请忽略我刚刚创建的路径):
/Yu"stdafx.h" /MP /GS- /W4 /Gy /Zc:wchar_t /I"...my includes" /Zi /Gm- /Od /Fd"Debug\vc141.pdb" /Zc:inline /fp:fast /D "USE_EIGEN" /D "EIGEN_FAST_MATH" /D "EIGEN_NO_AUTOMATIC_RESIZING" /D "VISUALSTUDIO=100" /D "_DEBUG" /D "WIN64" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /arch:AVX /Gd /MTd
/openmp /std:c++17 /FC /Fa"Debug\" /EHa /nologo /Fo"Debug\" /Fp"Debug\program.pch" /diagnostics:classic
这些是链接器的标志:
/OUT:"program.exe" /MANIFEST /NXCOMPAT /PDB:"program.pdb" /DYNAMICBASE "program.lib" "....my libs" /STACK:"32768"",32768" /DEBUG /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /PGD:"program.pgd"/SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"program.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"...my libpaths" /TLBID:1
然后我使用那个库只是为了创建一个新的 exe 程序 1.exe。我保留了与以前相同的配置标志。
一切正常,发布时内置的program1.exe的速度与program.exe的速度相同,但是如果我在Visual Studio的调试中运行新的program1.exe,它会慢得多,所以它是不再可用。因此在这种情况下,调试速度很重要。
释放速度保持不变。
为什么?
有什么让它更快的想法吗?
【问题讨论】:
-
请提供minimal reproducible example。调试速度真的很重要吗?发布速度是不是也变慢了?
-
是不是新建了一个exe工程,然后引用静态库程序,debug下发现速度慢了很多?您能提供一个小样品吗?
-
你的VS2017版本是什么,企业版还是专业版?
标签: c++ visual-studio performance debugging visual-studio-2017