调用层数深并不会显著地慢。
-O2 选项能够恰当地优化调用层数(在可能且合适的情况下)。
你得区分堆和栈。其机制可以通过简单学习汇编语言来了解。
再有就是2楼说的,先通过profiling来找到性能瓶颈。
【 在 il15 () 的大作中提到: 】
: 一个编译器程序有很多component, 每个component都通过统一的接口去调用别的component的对应函数,导致函数嵌套很深(稍微复杂点的目标文件一般都能到超过70层),这样会不会导致程序由于经常分配和释放堆栈而速度慢(我不清楚这里面的机制)?
: 如果是的话,gcc有什么编译选项能够优化这种情况吗?
--
FROM 220.248.9.*