【发布时间】:2009-04-05 14:46:13
【问题描述】:
我有一个代价高昂的函数被多次调用,并且该参数的可能值集非常有限。
函数返回码仅取决于参数,因此加快速度的明显方法是在函数中为可能的参数和相应的返回码保留一个静态缓存,因此对于参数的每种组合,代价高昂的操作将只执行一次。
我总是在这种情况下使用这种方法,它工作得很好,但我突然想到 GCC 函数属性 const 或 pure 可能可以帮助我解决这个问题。
有人有这方面的经验吗? GCC 如何使用 pure 和 const 属性 - 仅在编译时或运行时使用?
我可以依靠 GCC 足够聪明地调用一个函数,声明为
int foo(int) __attribute__ ((pure))
对于相同的参数值只需一次,或者没有任何保证,我最好坚持缓存方法?
编辑:我的问题不是关于缓存/记忆/查找表,而是 GCC 函数属性。
【问题讨论】:
-
纯不适用。但 const 看起来不错。
标签: c optimization gcc