android 浮點

來源:互聯網
上載者:User

本文轉自:http://android.tgbus.com/

避免使用浮點數

在奔騰CPU出現之前,遊戲設計者做得最多的就是整數運算。隨著奔騰的到來,浮點運算處理器成為了CPU內建的特性,浮點和整數配合使用,能夠讓你的遊戲運行得更順暢。通常在案頭電腦上,你可以隨意的使用浮點運算。

    但是非常遺憾,嵌入式處理器通常沒有支援浮點運算的硬體,所有對"float"和"double"的運算都是通過軟體實現的。一些基本的浮點運算,甚至需要毫秒級的時間才能完成。

    甚至是整數,一些晶片有對乘法的硬體支援而缺少對除法的支援。這種情況下,整數的除法和模數運算也是有軟體來完成的。所以當你在使用雜湊表或者做大量數學運算時一定要小心謹慎。

一些關於效能的資料

為了說明我們的觀點,我們列了一個表格,指明一些基本操作所用的時間。這些時間並不是絕對值,而是CPU時間和時鐘時間的混合體,隨著系統的提升,已耗用時間肯定會縮短的。但是我們需要注意這些值之間的比例,比如增加一個成員變數會比增加一個本地變數多花費四倍的時間。

    Action  Time  

Add a local variable  1  

Add a member variable  4  

Call String.length()  5  

Call empty static native method  5  

Call empty static method  12  

Call empty virtual method  12.5  

Call empty interface method  15  

Call Iterator:next() on a HashMap  165  

Call put() on a HashMap  600  

Inflate 1 View from XML  22,000  

Inflate 1 LinearLayout containing 1 TextView  25,000  

Inflate 1 LinearLayout containing 6 View objects  100,000  

Inflate 1 LinearLayout containing 6 TextView objects  135,000  

Launch an empty activity  3,000,000  

    要為嵌入式系統編寫優雅高效的代碼最根本的是要明白你的這些代碼究竟要做什麼。如果你真的想分配一個iterator,那麼就對List使用foreach好了。它是你的選擇而不是什麼有趣的錯誤提示。

    有備則無患。知道你想要做什麼。傾注你最大的熱情,清楚的瞭解你的代碼,然後儘力讓它跑得更快。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.