青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Dict.CN 在線詞典, 英語學習, 在線翻譯

學??嘧髦?,書山勤為徑

留下點回憶

常用鏈接

統計

積分與排名

Denoise

English study

Web技術

數據壓縮

一些連接

最新評論

代碼優化-刪除分支(實例1)

 

分支是什么,具體可以參見:http://blog.csdn.net/housisong/archive/2007/10/05/1812117.aspx

這里舉一個實際的例子來說明如何刪除分支。

代碼如下:

 

 1#define DIVIDE_BY(a,b) ((a < b)? (a = 0):(a /= b))
 2
 3short CXpegDCT::Quant(long val,long div)
 4
 5{
 6
 7         if (val < 0{
 8
 9                   val = -val + (div>>1);/* for rounding */
10
11                   DIVIDE_BY(val, div);
12
13                   val = -val;
14
15         }
 else {
16
17                   val += div>>1/* for rounding */
18
19                   DIVIDE_BY(val, div);
20
21         }

22
23         return (short)val;
24
25}

26
27


上面的代碼有兩個分支;一個是用來判斷val的值是否大于0,另外一個是判斷val是否比被除數小。

 

對于第一個判斷的目的就是要在val小于0的時候將其轉換為正值,然后進行除法運算,最終還要將符號取反。因此對于val為正和負的不同在于運算前后的符號取反。

為了消除這個分支需要定義一個數組,這個數組包含兩個元素;一個元素保存正val的絕對值,另外一個保存絕對值的負值,修改后的代碼如下:

 

 1Long m_TmpVals[2];
 2
 3short CXpegDCT::Quant(long val,long div)
 4
 5{
 6
 7         long lTmpVal;
 8
 9         m_TmpVals[0= val;
10
11         m_TmpVals[1= -val;
12
13         lTmpVal = m_TmpVals[val<0];
14
15 
16
17         lTmpVal += (div>>1);/* for rounding */
18
19         DIVIDE_BY(lTmpVal, div);
20
21         m_TmpVals[0= lTmpVal;
22
23         m_TmpVals[1= -lTmpVal;
24
25         return (short)m_TmpVals[val<0];
26
27}

28

 

 

先要定義一個數組,然后在開始的時候給這個數組賦值,進行除法以后,同樣將結果賦值數組,在對數組取值的時候使用val<0作為索引來查找。上面的程序與前面的程序是等價的。但它卻消除了分支,從而讓CPU能更好的預測。

 

其實對于除法的也是一個分支,在開始的時候我試圖也消除這個分支,但結果事與愿為,我的轉換確實消除了分支,帶來的確實無能如何都要執行一次整數除法。例如:

 

Long m_TmpVals[2];

Long m_TmpVals2[
2];

short CXpegDCT::Quant(long val,long div)

{

         
long lTmpVal;

         m_TmpVals[
0= val;

         m_TmpVals[
1= -val;

         lTmpVal 
= m_TmpVals[val<0];

 

         lTmpVal 
+= (div>>1);/* for rounding */

         m_TmpVals2[
1= 0;

         m_TmpVals2[
0= lTmpVal/div;

         m_TmpVals[
0= m_TmpVals2[lTmpVal<div];

         m_TmpVals[
1= - m_TmpVals2[lTmpVal<div];

         
return (short)m_TmpVals[val<0];

}

如上面的代碼,雖然刪除了分支,但卻帶來了一個必須的除法運算,所以這個分出刪除未必是合適的。

posted on 2008-09-29 00:00 笨笨 閱讀(1874) 評論(0)  編輯 收藏 引用 所屬分類: 代碼優化

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产亚洲第一区| 一个色综合av| 亚洲桃花岛网站| 一区二区三区国产在线观看| 日韩一级在线观看| 亚洲在线免费观看| 久久99伊人| 欧美激情视频在线免费观看 欧美视频免费一| 在线亚洲观看| 亚洲小说欧美另类社区| 亚洲欧美一区二区激情| 久久久欧美一区二区| 欧美激情女人20p| 亚洲麻豆国产自偷在线| 亚洲影院在线| 久久综合狠狠综合久久综合88| 欧美国产日韩二区| 国产欧美一区二区精品婷婷| 亚洲国产精品电影在线观看| 亚洲无吗在线| 欧美 亚欧 日韩视频在线| 9l视频自拍蝌蚪9l视频成人| 久久激情网站| 国产精品福利在线| 亚洲国产裸拍裸体视频在线观看乱了| 中国亚洲黄色| 老色鬼精品视频在线观看播放| 亚洲欧洲一区| 亚洲在线日韩| 欧美刺激性大交免费视频| 国产精品视频yy9099| 亚洲精品综合在线| 毛片av中文字幕一区二区| 国产精品99久久不卡二区| 免费国产自线拍一欧美视频| 国产欧美日韩不卡| 中文欧美字幕免费| 亚洲国产精品悠悠久久琪琪| 午夜一区在线| 国产精品乱码| 一区二区精品| 91久久国产精品91久久性色| 久久在线免费观看| 黄色日韩在线| 久久久www成人免费精品| 在线视频你懂得一区| 欧美黄在线观看| 亚洲国产精品视频| 久热精品在线| 欧美影片第一页| 国产网站欧美日韩免费精品在线观看 | 国产欧美在线观看| 中文日韩电影网站| 亚洲国内自拍| 欧美精品1区2区3区| 亚洲福利专区| 免费一级欧美在线大片| 久久久国产精品亚洲一区| 国产日产亚洲精品| 欧美日韩 国产精品| 欧美精品久久久久久久久久| 在线 亚洲欧美在线综合一区| 久久成人av少妇免费| 午夜精彩视频在线观看不卡| 国产精品一区视频| 久久久国产成人精品| 欧美一区网站| 黄色在线一区| 欧美国产激情| 欧美久久电影| 亚洲主播在线观看| 销魂美女一区二区三区视频在线| 国产亚洲综合精品| 欧美xxxx在线观看| 男人的天堂亚洲在线| 99精品国产福利在线观看免费| 亚洲精品乱码久久久久久按摩观 | 日韩视频免费| 一区二区三区久久久| 国产日韩欧美精品综合| 久久久久在线| 欧美成人国产| 亚洲男人av电影| 欧美一级电影久久| 91久久精品日日躁夜夜躁国产| 亚洲国产精品一区二区尤物区| 欧美色视频在线| 久久久女女女女999久久| 欧美国产精品久久| 午夜视频久久久| 老司机aⅴ在线精品导航| 亚洲视频中文字幕| 久久免费观看视频| 亚洲女女女同性video| 久久久久免费观看| 亚洲欧美日韩在线| 男女激情视频一区| 欧美一二区视频| 欧美福利专区| 久久久女女女女999久久| 欧美日韩理论| 美女日韩欧美| 国产精品午夜春色av| 亚洲激情社区| 在线播放不卡| 午夜精品久久久久| 一区二区成人精品| 六月丁香综合| 久久九九国产| 国产精品久久午夜| 亚洲国产日韩一区二区| 国产亚洲视频在线观看| 一区二区三区视频在线播放| 亚洲二区视频| 久久激情视频免费观看| 午夜伦欧美伦电影理论片| 欧美二区不卡| 欧美国产亚洲另类动漫| 伊人春色精品| 久久gogo国模裸体人体| 一区久久精品| 久久精品首页| 欧美午夜在线一二页| 亚洲国语精品自产拍在线观看| 国产在线视频欧美| 亚洲欧美视频在线观看视频| 一区二区欧美日韩| 欧美精品一区二区三区在线播放| 免费高清在线视频一区·| 国产一级一区二区| 欧美一区91| 久久久亚洲影院你懂的| 国产亚洲精品久久久久久| 亚洲性图久久| 欧美一区二区精品在线| 国产精品视频福利| 亚洲欧美电影在线观看| 欧美亚洲系列| 国产情人综合久久777777| 午夜精品福利一区二区三区av| 欧美一级在线亚洲天堂| 国产欧美日韩综合一区在线播放| 亚洲在线日韩| 久久美女性网| 亚洲国产美女精品久久久久∴| 蜜臀av一级做a爰片久久| 欧美激情久久久| 一区二区久久久久| 国产精品每日更新在线播放网址| 中国成人黄色视屏| 欧美有码在线视频| 一区二区视频欧美| 欧美成人午夜剧场免费观看| 亚洲人被黑人高潮完整版| 亚洲新中文字幕| 国产精品一区二区在线| 久久久xxx| 亚洲国产午夜| 午夜精品久久久久久久99水蜜桃| 国产日韩欧美综合在线| 久久综合网hezyo| 最新国产の精品合集bt伙计| 午夜精品一区二区三区在线视| 国产一区二区三区黄视频| 欧美大片网址| 午夜伦理片一区| 亚洲电影在线| 欧美一区二区观看视频| 亚洲国产欧美一区| 国产精品高清一区二区三区| 久久精品最新地址| 日韩视频一区二区| 久久九九久久九九| 一区二区三区高清| 韩日精品视频一区| 欧美性事在线| 欧美成人小视频| 欧美在线1区| 一区二区三区日韩精品| 欧美成人激情在线| 午夜宅男久久久| 亚洲伦理精品| 国产在线一区二区三区四区| 欧美日韩激情网| 浪潮色综合久久天堂| 香蕉精品999视频一区二区| 亚洲精品国产精品国自产在线| 久久精品中文字幕免费mv| 亚洲自拍三区| 在线视频亚洲欧美| 亚洲精品老司机| 黄色成人在线| 国产精品在线看| 亚洲欧美日韩中文视频| 久久字幕精品一区| 亚洲永久在线| 在线中文字幕一区| 亚洲精品一级| 亚洲激情av| 亚洲国产精品成人|