C++調用Lua的效能測試

來源:互聯網
上載者:User

標籤:lua   c++   遊戲   伺服器   指令碼互動   

遊戲伺服器經典的架構就是C++和Lua的結合,C++開發主體架構,Lua實現一些複雜的邏輯。我們都知道Lua是一種非常快的語言,但是到底有多塊,我們測試下看看。C++調用Lua的效能測試,發現不對的地方望提出。

實驗一:我們使用C++調用Lua帶8個以上參數的函數,而這個函數裡面什麼也沒有做。我們通過這個實驗能夠簡單地測試出:使用Lua虛擬機器和向調用棧當中傳入8+個參數和Lua取出這些參數的時間。但是其中的參數類型比較多樣,有整形,浮點型,和數組。實驗的Lua函數比較簡單,如下:

function test(x1,x2,x3,x4,x5,x6,x7,x8,x9)end

實驗結果:我們調用這個函數1000次所需要的時間在35ms左右,也就是說一次調用的時間在0.035ms左右

實驗二:我們使用C++調用帶有一個參數的Lua函數,通過和實驗一的結果組成方程組能幫我們求出使用Lua虛擬機器的時間和參數出入棧的時間。
其中Lua函數是非常簡單的如下:

function test(x1)end

實驗結果:我們調用這個函數1000次所需要的時間在16ms左右,也就是說一次調用的時間在0.016ms左右。

實驗三:我們在實驗二的函數中加入Lua調用C++的函數,這個函數在C++端也什麼都不做,來測試Lua調用C++時入棧和出棧時候的時間。
函數簡單如下:

function test(x1)    Chat(x1,x2,x3,x4,x5,x6,x7)end

實驗結果:我們發現其使用時間高於(實驗二)15ms左右,估計,調用一次虛擬機器的時間是14ms,參數的時間估計是1ms左右

實驗四:我們在實驗二的基礎之上將其函數參數擴充到2個,我們觀察其時間有沒有小幅的變化。
函數如下:

function test(x1,x2)end

實驗結果:我們發現時間和實驗二差不多,這或許可以反映出出入棧的時間是比較快的,申請比較大的棧記憶體或許會佔用比較多的時間。

實驗五:我們在實驗二的基礎上將函數的參數擴充到3個,我們發現其時間還是沒有明顯的變化。
函數如下:

function test(x1,x2,x3)end

實驗結果:可以反映出出入棧的時間是比較快的,申請比較大的棧記憶體或許會佔用比較多的時間。

實驗六:我將函數的參數擴充到7個,我們觀察其時間是如何變化的
函數如下:

function test(x1,x2,x3,x4,x5,x6,x7)end

實驗結果:發現去時間和實驗五差不多,或許可以驗證出入棧的時間是比較快的,申請比較大的棧記憶體或許會佔用比較多的時間。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

C++調用Lua的效能測試

聯繫我們

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