遊戲效率優化(1) 前置遞增與後置遞增區別

遊戲效率優化(1)前置遞增與後置遞增區別

DionysosLai 2014-5-8

       現在遊戲硬件配置已經比以前有了很大的提升,對於以前很多效率優化方面內容,可以不用做到不用以前那麼錙銖必較了。不過,作爲一名從電子轉行過來的人,大學四年被小內存搞怕的人,還是那麼的喜歡優化自己的代碼,提升效率。

         今天,我們談論的一個問題是大家都比較容易忽略的問題,而這個問題,肯定會在你的遊戲體現。那就是++i與i++的區別。當然,在這裏我們不是討論像(i++)+(i++)+(i++)等奇葩問題。

       前置遞增++i和後置遞增i++的區別,主要有四個方面,大家可以看下這個哥們寫的文章:http://jarfield.iteye.com/blog/754474。這裏我們討論的是效率問題。

         前置遞增是對運算子遞增後,再傳回其值;後置遞增則傳回之前爲遞增的值。所以前置遞增只需要簡單地把指針或迭代器就地遞增,再傳回它的參考。後置遞增必須先備份舊值,把指針或迭代器遞增,並傳回之前的備份。對於指針或整數所以而言,除了在緊湊的循環中,一般不會造成太大問題。然而,對於迭代器來說(特別是使用STL語言),後置遞增可能導致效能損失,因爲運算子備份及返回舊值時,或須進行復雜的迭代器對象建構及複製。

         綜上,最好習慣任何時刻都使用前置遞增,除非真的需要後置遞增的語意。特別是在for語句中,大家都喜歡用後置遞增問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章