我正在Visual Studio 2012中编译MSVC。 即使启用了最大化优化,当我测试数学库与原始代码时,我在手动内联原始代码中获得的代码速度提高了2倍。我的数学函数在头文件中声明并在.cpp文件中定义。如果我转动.cpp将文件转换为.inl文件,我得到与原始代码相同的性能。即使启用了所有可能的优化,编译器也无法内联未在头文件中定义的内容...我认为过程间优化和链接时间代码生成可以解决这个问题,但我想它没有。绝对没有什么似乎在非原始情况下内联,它的执行速度慢了两倍。有没有办法解决这个问题?因为我的大多数代码都非常性能密集,我需要挤出最大的效率,但另一方面,我不能让我的整个库在标题中内联,编译将花费数小时。