【发布时间】:2013-11-24 20:39:45
【问题描述】:
我有一个代码块
for ( ... )
{
if (condition) {
// some code
}
// some more code
}
if 条件内和外部的代码大小合适。条件要么总是真要么总是假,所以不应该有任何分支预测未命中。在条件始终为false 的情况下,if 条件内的代码是否会从指令缓存中删除?有什么方法可以针对 icache 进行优化吗?
【问题讨论】:
-
在comile时间总是对还是错?从运行时开始?
-
IMO 这需要是关于单一类型处理器的问题 - 不同的处理器会表现不同,因此没有通用的答案。
-
它针对 x86-64 处理器。
标签: performance caching optimization