2010-09-30 68 views
2

有沒有一種方法可以告訴編譯器將它內聯到任何它認爲有用的地方?我認爲它默認是這樣做的,但在我的遊戲循環功能中添加一些內聯功能可將性能提高30%。VC++自動內聯?

感謝

+1

哪個版本的VC? – sbi 2010-09-30 22:36:25

+0

哦,你正在測量'發佈'版本,對吧? – sbi 2010-09-30 22:56:35

回答

3

The /Ob option

注意,編譯器可以在編譯單元沒有自動內聯函數,除非你使用全程序優化(/ GL)。

1

編譯器一般會內聯函數,如果它似乎以提高性能,但是,它可能會避免這種情況,如果你沒有啓用優化(例如調試模式)。如果您啓用優化,則應該爲您提供內聯。

2

如果您通過/Ob2開關(但僅在打開優化時,例如/O2)告訴它,Visual C++將自動執行inline expansion

可能是因爲這被關閉,或者編譯器在內聯方面沒有像你想要的那樣積極。在後一種情況下,使用inline關鍵字(您已完成:D)。