febird.dataio 优化技术

优化技术主要有两点:1.         优化的inlinea)         频繁调用的函数都使用inline,但是值得注意的是,在inline的时候,只inline最频繁的分支,很少走到的分支使用非inline函数,例如:void InputBuffer::ensureRead(void*vbuf,size_tlength){    // 为了效率,这么实现可以让编译器更好地inline这个函数// inline 后的函数体并尽可能小    if(m_cur+length        memcpy(vbuf,m_cur,length);        m_cur+=length;    }else        fill_and_ensureRead(vbuf,length);}一般情况下,如果length是个不大的常数值,编译器会把memcpy优化成赋值语句。至少在VC2008中我观察到了这个

你可能感兴趣的:(febird.dataio 优化技术)