以 (SGI) C++ STL std::list 的例子来说:
因为涉及很多对资料结构低阶的操作,所以实作上势必有很多内部函数的呼叫,
像是 protected: void transfer(...); 就是一个明显的例子,被反复呼叫很多次。
假使不在乎编译出来的执行档膨胀的问题的话,把执行的速度作为最高的原则,
那大家觉得如果把所有函式 inline ,能快上多少?快很多?还是一点点而已?
毕竟很多时候效能的瓶颈就卡在那个最底层的东西上面。
作者:
Caesar08 (Caesar)
2016-09-29 17:17:00哈哈哈哈哈哈 我昨天就在看这个耶 !!!只是有点好奇 大家会怎么觉得 OwO
作者:
Caesar08 (Caesar)
2016-09-29 17:20:00那你就知道 你问的问题很难有正确答案了
但是我已经快要有答案啦哈哈哈 因为我正实作一个完全没有函数呼叫开销的 linked list container正因为他们说不一定 所以才更想知道 如果做出来了到底是变快还是变慢 还是根本没影响
作者:
Caesar08 (Caesar)
2016-09-29 17:28:00gcc有__attribute__((always_inline))VC++有__forceinline。把这个加在他们实作的std::list就好了吧?
那个还没试过 但是我想要用 C 语言去实作这样的东西
作者:
pili100 (zelda)
2016-09-29 17:59:00有实验精神
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-09-29 18:31:00现在 compiler 太聪明了, 看到 hotspot 自动就会 inline真想在 release build 测出效能差别还满难的
作者:
chchwy (mat)
2016-09-29 22:23:00把optimize开起来 那些函数几乎全部都被inline
作者:
rodion (r-kan/reminder)
2016-09-30 10:11:00不见得会变快 如果碰到膨胀的CODE导致cache miss的话
作者: LiloHuang (十年一刻) 2016-09-30 10:21:00
作者: LiloHuang (十年一刻) 2016-09-30 21:58:00
没留意到之前有人贴过,总之多做 code profiling