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

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>
            99精品99| 欧美激情无毛| 欧美激情1区2区3区| 久久久久免费视频| 欧美成人精品一区| 欧美搞黄网站| 亚洲精品久久久久中文字幕欢迎你| 欧美国产亚洲精品久久久8v| 亚洲欧洲日韩综合二区| 亚洲一卡二卡三卡四卡五卡| 午夜日韩电影| 欧美成人有码| 国产九色精品成人porny| 激情欧美国产欧美| 一本久道综合久久精品| 先锋a资源在线看亚洲| 暖暖成人免费视频| 亚洲视频导航| 女女同性精品视频| 国产欧美日韩精品在线| 亚洲激情专区| 久久久久久久久久久久久女国产乱 | 99成人精品| 久久爱另类一区二区小说| 欧美大片第1页| 国产视频亚洲精品| 一区二区三区|亚洲午夜| 久久亚洲色图| 亚洲综合好骚| 欧美日韩一区不卡| 亚洲精品国产精品国自产在线| 欧美在线黄色| 亚洲一区二区成人在线观看| 宅男噜噜噜66国产日韩在线观看| 久久精品在线| 亚洲看片免费| 久久精品国产精品亚洲综合| 亚洲破处大片| 免费久久99精品国产自在现线| 国产欧美午夜| 新狼窝色av性久久久久久| 亚洲黄色成人| 蜜臀91精品一区二区三区| 精品成人一区| 久久久国产91| 亚洲欧美日韩国产综合在线 | 91久久精品www人人做人人爽| 欧美在线视频免费| 国产精品丝袜xxxxxxx| 一区二区三区精密机械公司| 亚洲国产日韩一区二区| 男女激情视频一区| 亚洲欧洲一区二区天堂久久| 欧美激情第二页| 免费视频最近日韩| 亚洲美女视频在线观看| 亚洲国产婷婷综合在线精品| 欧美国产成人在线| 一本久道久久久| 99天天综合性| 欧美午夜在线视频| 欧美性生交xxxxx久久久| 亚洲理论电影网| 亚洲激情成人| 欧美视频你懂的| 亚洲在线视频| 亚洲欧美国产精品va在线观看| 国产欧美日韩亚洲精品| 久久久综合网| 男人插女人欧美| 亚洲视频精品在线| 亚洲午夜国产成人av电影男同| 国产精品日日摸夜夜摸av| 久久精品在线观看| 老巨人导航500精品| 国产精品久久久久久久免费软件 | 国产亚洲精品久| 久久野战av| 久久野战av| 一区二区三区.www| 欧美一区成人| 亚洲欧洲一区二区三区久久| 夜夜爽av福利精品导航 | 欧美一级片一区| 亚洲福利视频三区| 国产日韩欧美精品在线| 午夜精品久久久久久久99水蜜桃| 亚洲欧美资源在线| 亚洲国产精品v| 亚洲精品国产欧美| 国产偷自视频区视频一区二区| 欧美高清视频免费观看| 欧美午夜a级限制福利片| 老鸭窝亚洲一区二区三区| 欧美精品在线观看| 久久久精品欧美丰满| 欧美日韩国产免费| 久久人人97超碰人人澡爱香蕉| 欧美极品欧美精品欧美视频| 久久精品国产亚洲精品| 欧美日韩你懂的| 欧美成人精品三级在线观看| 国产精品久久国产三级国电话系列 | 欧美一区二视频| 欧美国产精品一区| 久久久蜜臀国产一区二区| 欧美精品一区二区三| 久久午夜视频| 国产欧美日韩高清| 亚洲精选在线| 亚洲日产国产精品| 久久三级福利| 久久一区二区三区四区| 国产欧美精品一区二区色综合 | 亚洲国产经典视频| 欧美在线视频日韩| 性18欧美另类| 国产精品视频久久久| 日韩午夜电影| 欧美电影免费观看高清完整版 | 一区二区高清在线观看| 亚洲人成网站精品片在线观看| 久久国产一区二区三区| 欧美一区二粉嫩精品国产一线天| 欧美日韩精品综合在线| 亚洲精品少妇30p| 99精品国产在热久久| 欧美成人在线免费观看| 欧美韩日一区二区| 亚洲片在线资源| 欧美精品导航| 夜夜嗨av一区二区三区中文字幕 | 中文在线一区| 久久久久欧美精品| 欧美成人综合| 亚洲激情一区| 9色精品在线| 欧美精品一区二区三区很污很色的 | 亚洲国产日韩精品| 亚洲精品女av网站| 欧美精品久久99| 一本色道久久综合| 亚洲欧美国产精品va在线观看| 国产精品久久久久久久9999| 亚洲欧美日韩天堂| 久久久久久999| 亚洲电影自拍| 欧美日韩高清一区| 亚洲欧美99| 免费亚洲电影在线观看| 亚洲精品综合| 国产精品亚洲片夜色在线| 久久国产免费| 亚洲激情女人| 欧美一级在线视频| 影音先锋日韩资源| 欧美人与性动交α欧美精品济南到 | 国产日韩欧美一区二区三区在线观看| 欧美一级艳片视频免费观看| 男女视频一区二区| 在线中文字幕日韩| 国产午夜精品在线| 欧美国产成人精品| 亚洲欧美日韩国产另类专区| 欧美 日韩 国产在线| 亚洲一区在线看| 曰韩精品一区二区| 欧美丝袜一区二区| 久久婷婷国产综合精品青草| 日韩午夜激情电影| 久久夜色精品国产亚洲aⅴ| 妖精视频成人观看www| 国产欧美日韩三级| 欧美激情性爽国产精品17p| 午夜精品区一区二区三| 亚洲国产日韩一区| 久久久久久久久久久久久久一区 | 女女同性女同一区二区三区91| 一区二区三区欧美在线| 国产综合色一区二区三区| 欧美精品一区在线发布| 久久精品亚洲精品国产欧美kt∨| aa亚洲婷婷| 亚洲高清自拍| 蜜臀va亚洲va欧美va天堂| 亚洲欧美日韩天堂| 亚洲日本乱码在线观看| 黑丝一区二区| 国产欧美日韩一级| 欧美视频在线观看视频极品| 欧美高清视频一区二区三区在线观看| 午夜精品999| 亚洲影视在线播放| 亚洲美女视频| 亚洲黄色在线看| 欧美精品99| 亚洲一级在线观看| 亚洲国产欧美日韩精品| 久久综合五月| 久久精品人人做人人综合|