java內嵌函式

來源:互聯網
上載者:User

標籤:記憶   類型   轉移   替換   恢複   編譯器   效能   過程   特性   

在說內嵌函式之前,先說說函數的調用過程。  

    調用某個函數實際上將程式執行順序轉移到該函數所存放在記憶體中某個地址,將函數的程式內容執行完後,再返回到  
轉去執行該函數前的地方。這種轉移操作要求在轉去前要保護現場並記憶執行的地址,轉回後先要恢複現場,並按原來保  
存地址繼續執行。也就是通常說的壓棧和出棧。因此,函數調用要有一定的時間和空間方面的開銷。那麼對於那些函數體  
代碼不是很大,又頻繁調用的函數來說,這個時間和空間的消耗會很大。  

    那怎麼解決這個效能消耗問題呢,這個時候需要引入內嵌函式了。內嵌函式就是在程式編譯時間,編譯器將程式中出現  
的內嵌函式的調用運算式用內嵌函式的函數體來直接進行替換。顯然,這樣就不會產生轉去轉回的問題,但是由於在編譯  
時將函數體中的代碼被替代到程式中,因此會增加目標程式碼量,進而增加空間開銷,而在時間代銷上不象函數調用時  
那麼大,可見它是以目標代碼的增加為代價來換取時間的節省。  

    在大學裡學習寫C代碼時,我們都學到將一些簡短的邏輯定義在宏裡。這樣做的好處是,在編譯器編譯的時候會將用  
到該宏的地方直接用宏的代碼替換。這樣就不再需要象調用方法那樣的壓棧、出棧,傳參了。效能上提升了。內嵌函式的  
處理方式與宏類似,但與宏又有所不同,內嵌函式擁有函數的本身特性(類型、範圍等等)  

java內嵌函式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.