溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Lua是什么

發(fā)布時間:2022-01-18 15:14:11 來源:億速云 閱讀:282 作者:iii 欄目:開發(fā)技術(shù)

這篇“Lua是什么”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Lua是什么”文章吧。

做數(shù)據(jù)庫性能測試的時候,很常用的一個工具就是sysbench,而且有一點(diǎn)很特別,默認(rèn)就是使用了Lua模板,有同學(xué)說Lua模板是什么,如果告訴你是一門新的腳本語言,很多同學(xué)就頭大了,當(dāng)然sysbench也不是甩手掌柜,已經(jīng)給你配備了一系列的Lua模板,基本能夠滿足大多數(shù)場景的測試,比如OLTP讀寫,只讀,插入,批量插入等模板。‘

Lua是什么

當(dāng)然也不是一勞永逸,如果我們深入做一些測試就會發(fā)現(xiàn)還是有一定的局限性,比如表名是sbtest[n]的方式,表結(jié)構(gòu)清一色就是不到5個字段,而且表結(jié)構(gòu)信息和數(shù)據(jù)也沒法直接改動,如此一來和真實(shí)的場景還是差別很大,測試結(jié)果僅做參考,如果要改進(jìn),那就是基于模板深度定制一個更好一些。這也是我寫這篇文章的一個出發(fā)點(diǎn)之一。

我們來簡單了解下Lua,看下它的優(yōu)點(diǎn)和缺點(diǎn)。這門語言誕生于巴西里約熱內(nèi)盧天主教大學(xué),腳本解析器不到200K,非常適合閱讀源碼學(xué)習(xí),而且在目前所有腳本引擎中,Lua的速度是最快的。在游戲行業(yè)里用得很多,比如在魔獸世界中,這一切都決定了Lua是作為嵌入式腳本的最佳選擇。用一句很技術(shù)的評論說,就是

Lua源碼滿足了我們對c語言編程的所有幻想,可能是目前最好的c開源庫之一。

當(dāng)然光說好的也不好,我們得看看它不能做什么,或者做得不好的地方。簡單總結(jié)下來就是

標(biāo)準(zhǔn)庫功能太少、沒有多核支持、沒有unicode支持、c api太難用,而且比較糾結(jié)的是Lua 版本升級向來是不兼容的,這一點(diǎn)和Python兄弟很像,很任性。如果從5.1是要想升級到 5.2 要做很多額外的工作(最新版本是5.3.4)。

此外LuaJIT我們也可能會常見,可以理解是Lua的一個高效版,通過ffi把Lua的生態(tài)做得更加強(qiáng)大了。至少在sysbench啟動的時候會明顯看到如下的信息:

sysbench 1.1.0 (using bundled LuaJIT2.1.0-beta3)

操作系統(tǒng)層面如果調(diào)用lua命令,會發(fā)現(xiàn)是系統(tǒng)自帶的。兩者的版本明顯不同。

# lua

Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio,

到了這里,我們可以設(shè)定一個小目標(biāo),我們自己來定制Lua模板,來滿足我們制定業(yè)務(wù)需求的測試場景,如果需要調(diào)整事務(wù)的大小和DML的比例,也可以通過配置靈活實(shí)現(xiàn),想想多美好。

所以我們要做的一件事情就是在IDE中配置,我們選擇IntelliJ,安裝一個Lua插件。

我們選擇一個相對較新的版本

Lua是什么

然后在IntelliJ里面配置插件,選中jar包即可。

Lua是什么

插件EmmyLua就這樣完成了安裝,我們可以通過這種方式先看看sysbench里面的Lua模板,看看下一步該怎么做。

Lua是什么

如果重建一個工程,我們會明顯看到這個Lua的選項(xiàng)。

Lua是什么

我沒有學(xué)過Lua,但是我看Lua腳本的時候,發(fā)現(xiàn)和MHA里面的Perl語法很相似,有很多我覺得就是c的風(fēng)格??傮w易讀性更強(qiáng),因?yàn)槟0宓拇a很簡練,我們能很快找到重點(diǎn)。自己要定制的話相比MHA定制要容易一些(目前拍腦袋認(rèn)為)。

比如insert的模板就是這些內(nèi)容,除了oltp_common的內(nèi)容,實(shí)際需要控制的邏輯還是很簡潔的。

Lua是什么

以上就是關(guān)于“Lua是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

lua
AI