日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 高效的C編程之:寄存器分配

          高效的C編程之:寄存器分配

          作者: 時間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://yuyingmama.com.cn/article/257018.htm

          比較下面兩個完成同樣功能的函數(shù),分析全局的操作對程序性能的影響。

          intf(void);

          intg(void);

          interrs;

          voidtest1(void)

          {

          errs+=f();

          errs+=g();

          }

          voidtest2(void)

          {

          intlocalerrs=errs;

          localerrs+=f();

          localerrs+=g();

          errs=localerrs;

          }

          編譯結(jié)果如下。

          test1

          STMDBsp!,{v1,lr}

          BLf

          LDRv1,[pc,#L00002c-.-8]

          LDRa2,[v1,#0]

          ADDa1,a1,a2

          STRa1,[v1,#0]

          BLg

          LDRa2,[v1,#0]

          ADDa1,a1,a2

          STRa1,[v1,#0]

          LDMIAsp!,{v1,pc}

          L00002c

          DCD|x$dataseg|

          test2

          STMDBsp!,{v1,v2,lr}

          LDRv1,[pc,#L00002c-.-8]

          LDRv2,[v1,#0]

          BLf

          ADDv2,a1,v2

          BLg

          ADDa1,a1,v2

          STRa1,[v1,#0]

          LDMIAsp!,{v1,v2,pc}

          從編譯的結(jié)果中可以看出,test1中每次對全局errs的訪問都會使用耗時的Load/Store指令;而test2只使用了一次內(nèi)存訪問指令。這對提高程序的整體性能有很大幫助。

          3.指針鏈

          指針鏈(PointerChains)常被用來訪問結(jié)構(gòu)體內(nèi)部。下面的例子顯示了一個典型的指針鏈的使用。

          typedefstruct{intx,y,z;}Point3;

          typedefstruct{Point3*pos,*direction;}Object;

          voidInitPos1(Object*p)

          {

          p->pos->x=0;

          p->pos->y=0;

          p->pos->z=0;

          }

          上面的代碼每次使用“p->pos”時都會對變量重新取值。為了提高代碼效率,將程序改寫如下。

          voidInitPos2(Object*p)

          {

          Point3*pos=p->pos;

          pos->x=0;

          pos->y=0;

          pos->z=0;

          }

          經(jīng)過改寫的代碼,減少了內(nèi)存訪問次數(shù),提高程序的執(zhí)行效率,另外也可以在object結(jié)構(gòu)體中增加一個point3域,專門作為指向p->pos的指針。

          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉