鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

将频繁执行的代码布局到连续空间中

【说明】 频繁使用的指令,空间上组织在一起,以降低指令I-Cache Miss的概率。

【原理】 频繁访问的指令组织在一起,避免了指令Cache的换入换出,提升了指令Cache命中的概率。

【注意事项】 基于频繁执行的代码进行调整,可能对原有程序的可读性、可维护性带来挑战,并需要基于实际性能场景进行持续维护,在调整之前需明确其风险。

【案例】

优化前
void DemoFunc()
{
    if(condition(...))  {
        xxx;   //大量频繁访问的代码
    } else {
        xxx;   //大量非频繁访问的代码
    }
}

说明:频繁访问和非频繁访问的代码交织在一起,降低了指令Cache的利用率。

优化后
void ExceptionHandle()
{
    xxx; //大量非频繁访问的代码
}
void DemoFunc()
{
    if(condition(...))  {
        xxx;   //大量频繁访问的代码
    } else {
        ExceptionHandle();   
    }
}

说明:将大量非频繁访问的代码集中在指定函数,指定文件中,链接阶段将非频繁访问的代码组织在一起。