国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PB代碼優化

2024-07-21 02:10:08
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

pb代碼優化
現今計算機的運行速度已經很快了,并且由于老板時常在耳邊念著緊箍咒,因此,我們有意或者無意的忘記優化我們的代碼,只要能完成任務就行了(我也是)。不過,我們閑下來的時候,不妨也來看看我們的代碼是否有需要改進的地方。下面就是我覺得值得優化的幾種情況。
第一種情況:
if condition1 and condition2 then

      //code goes here.

end if



if condition1 then

      if condition2 then

             //code goes here.

      end if

end if

 

對于書寫的第一種方式,由于pb編譯方式與常見的方式不同,就是無論條件1的值如何,都要對條件2進行運算。這樣一來,當條件1為false時,就可能要無謂的對條件2進行運算了。就按隨機的概率而言,可能會多進行一半的運算。因此,對于大多數情況而言,我想最好是以第二種方式書寫。當然,特殊情況也是有的,那就是你的確想對條件2進行運算。類似地,對于or也一樣。

 

if condition1 or condition2 then

      //code goes here.

end if



if condition1 then

      //code goes here.

else

      if condition2 then

             //code goes here.

      end if

end if
第二種情況:
if not condition then

      //code goes here.

end if



if condition then

      //no code goes here.

else

      //code goes here.

end if

 

對于上一種方式,條件表達式返回false并且再進行一個非運算,才執行下面的代碼。這樣相對于下面一種書寫方式可能多執行了一個非運算。如果大家有什么疑問,您不妨測試一下下面這個例子:

 

//小測試:其中的判斷條件只是為了表示一下,實際情況可能更復雜。

 

long i                   //計數器

long ll_start          //執行開始時間

long ll_used1       //方式一耗時

long ll_used2       //方式二耗時

 

//方式一

ll_start = cpu()

for i = 1 to 900000

      if not (1 > 1) then

             i = i

      end if

next        

ll_used1 = cpu() - ll_start

 

//方式二

ll_start = cpu()

for i = 1 to 900000

      if 1 > 1 then

            

      else

             i = i

      end if

next

ll_used2 = cpu() - ll_start

 

//查看結果

if ll_used2 > ll_used1 then

      messagebox("提示","前者運行時間短!")

else

      messagebox("提示","后者運行時間短!")

end if

 

可能有人會說,用下面的那種方式,如果在條件表達式返回false的時候,那么,if下就沒有代碼,這樣看起來就不太舒服。的確是這樣。因此,我們在寫成上面的那種方式時,盡量保持不要使用not運算,而保持條件表達式本身就返回希望的true值。
第三種情況:
if condition1 then

      //condition1

elseif condition2 then

      //condition2  

elseif condition3 then

      //condition3

else

      //other

end if



choose case /*expression*/

      case /*item*/

             /*statementblock*/

      case /*item*/

             /*statementblock*/

      case else

             /*statementblock*/

end choose

 

對于形如這樣的表達式,我想我們一般都沒去考慮先后順序。但是,其實我們應該把最可能發生的情況,放在前面,這樣可以避免在對一大堆條件進行判斷后,才到我們真正需要運行代碼的地方。
第四種情況:
for ... to ...

     

      if condition then

             //true

      else

             //false

      end if

     

next



if condition then

      //true

      for ... to ...

             //code goes here

      next

else

      //false

      for ... to ...

             //code goes here

      next

end if

 

盡管下面這種書寫方式,看起來好象代碼多了一些,但是卻極大的避免了在每個循環中都進行條件判斷。其實,一個原則就是,我們應當盡量避免在循環中進行條件判斷,而是把條件判斷放到循環體的外面進行。

 

其實,真正對于pb語言有特殊性的,也就是第一種情況,對于后面三種情況,對于別的編程語言,我想也同樣適用。

 

這是我的一點體會,謬誤的地方請大家指正。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆元县| 拜城县| 恩平市| 忻城县| 双江| 青阳县| 大安市| 衡南县| 林芝县| 巫山县| 美姑县| 汉寿县| 贵港市| 万盛区| 普兰店市| 德清县| 新竹市| 马山县| 通榆县| 蕲春县| 襄汾县| 和平县| 呼图壁县| 迁安市| 乌审旗| 渑池县| 长顺县| 乌兰县| 香河县| 旺苍县| 县级市| 安宁市| 青浦区| 正蓝旗| 小金县| 枣庄市| 梓潼县| 宣武区| 德兴市| 阳山县| 南安市|