|
最近程序优化处于瓶颈时期,本想通过cache命中率提高编码速度,走出这个瓶颈,可惜两天的调整无果而返,同时随着这一次的cache调整产生了更多的困惑。
1、前几次调整cache的时候是按照传统方式进行调整的,数据cache部分将对冲的两个数据(乒乓结构)结构放在两个8k的数据cache中,在使用其中一个的时候冲掉另一个,然后在被冲掉的位置上载入这次需要的数据结构,可是我按照这种方式调整的话I帧的数据cache命中率可以做到很到,大概能达到97.6%~98%左右,但是P帧的数据cache命中率却一直在93% ~94%徘徊,始终没有多大进展。这次调整中我将乒乓结构放在同一个8k的数据cache中,数据命中率完全没有下降,还是在原数据附近徘徊,让我很是困惑。 2、程序cache的命中率一直在92%左右上下波动,由于开启了程序O3的原因,程序命中率并非按照调整的方向前进,不透明的调整,由于到92%的时候完全拼人品了。
3、这次cache调整中出现了一个比较有趣的现象,调整了一个数据结构体的摆放位置后数据cache的命中率直接下降到了50%,而总周期数却从2897654下降到了1278654,完全是一个错误的数值。
|