Lua效能最佳化技巧(六):最後的提示_Lua

來源:互聯網
上載者:User

正如我們在前言裡所說,最佳化是一個技巧性很強的工作,從程式是否需要最佳化開始,有若干個方面的內容需要考量。如果程式真的有效能問題,那麼我們應該將精力集中於最佳化哪裡和如何最佳化。

我們在這裡討論的技巧既不是唯一的,也不是最重要的方面。我們在這裡專註於討論專門針對Lua的最佳化方式,因為有很多其他的方式可以瞭解通用的程式最佳化技巧。

在本文結束之前,我還想介紹兩種從更大的尺度上最佳化Lua程式效能的方式,但是它們都牽涉到Lua代碼之外的修改。第一個是使用LuaJIT[1],一個Lua的即時編譯器,由Mike Pall開發。他所作的工作非常卓越,而且LuaJIT可能是所有動態語言裡最快的JIT了。使用它的代價是它只能在x86架構上運行,而且你需要一個非標準的Lua解譯器(LuaJIT)來運行你的程式。所獲得的好處是你可以在不修改代碼的情況下讓程式的運行速度提高到原先的5倍。第二個方式是將部分代碼移到C中實現。這一條的重點在於為C代碼選擇合適的粒度。一方面,如果你把一些非常簡單的函數移動到C裡,Lua和C之間的通訊開銷會抵消使用C編寫函數帶來的效能優勢;另一方面,如果你把太大的函數移到C裡,你又失去了Lua所提供的靈活性。最後,還要注意的是這兩種方式有時候是不相容的。你把越多的代碼移到C裡,LuaJIT所能帶來的最佳化就越少。

[1]  JIT即Just-in-time,在這裡指即時編譯器。

聯繫我們

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