我正在使用的游戏引擎在调试版本中速度太慢,无法调试游戏。我想要的一件事是编译器内联小函数(特别是在Vector / Matrix和容器类中)。这可能会或可能不会加快调试构建中的游戏速度。在大量剖析并试图找出瓶颈之前,我想我会首先尝试这个,因为我必须做最小的工作,结果可能很有希望。
那么,有没有办法让Visual C ++编译器在调试版本中内联函数?
答案 0 :(得分:5)
项目选项 - > C / C ++ - >优化 - >内联函数扩展。将其转为/Ob2
。在您的调试配置中执行此操作。
在Release中,其他优化设置暗示了内联函数扩展,因此即使默认情况下所有配置都为设置说“默认”,但行为确实不同。
我认为Debug构建应该具有与release相同的内联扩展行为;没有理由不这样做。
答案 1 :(得分:1)
你混淆了两个编译器选项。 /O
影响优化,包括内联。 /ZI
创建用于调试的PDB文件。它们可以独立设置。
但是,克隆“调试”配置可能很有用,并使用/O1
和/ZI
创建“调试优化”配置。
答案 2 :(得分:0)
您可以尝试__forceinline
。请务必阅读该页面上的调试版本(关闭/Ob0
选项)。
我怀疑这不会改变表现。如果您还没有尝试,那么另一件事就是向发布版本添加符号。它可以很好地调试很多问题。
答案 3 :(得分:-1)
DEBUG
:
#ifdef DEBUG
inline void fn() {
#else
void fn() {
#endif