您好,登錄后才能下訂單哦!
這篇“Lua是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Lua是什么”文章吧。
做數據庫性能測試的時候,很常用的一個工具就是sysbench,而且有一點很特別,默認就是使用了Lua模板,有同學說Lua模板是什么,如果告訴你是一門新的腳本語言,很多同學就頭大了,當然sysbench也不是甩手掌柜,已經給你配備了一系列的Lua模板,基本能夠滿足大多數場景的測試,比如OLTP讀寫,只讀,插入,批量插入等模板。‘
當然也不是一勞永逸,如果我們深入做一些測試就會發現還是有一定的局限性,比如表名是sbtest[n]的方式,表結構清一色就是不到5個字段,而且表結構信息和數據也沒法直接改動,如此一來和真實的場景還是差別很大,測試結果僅做參考,如果要改進,那就是基于模板深度定制一個更好一些。這也是我寫這篇文章的一個出發點之一。
我們來簡單了解下Lua,看下它的優點和缺點。這門語言誕生于巴西里約熱內盧天主教大學,腳本解析器不到200K,非常適合閱讀源碼學習,而且在目前所有腳本引擎中,Lua的速度是最快的。在游戲行業里用得很多,比如在魔獸世界中,這一切都決定了Lua是作為嵌入式腳本的最佳選擇。用一句很技術的評論說,就是
Lua源碼滿足了我們對c語言編程的所有幻想,可能是目前最好的c開源庫之一。
當然光說好的也不好,我們得看看它不能做什么,或者做得不好的地方。簡單總結下來就是
標準庫功能太少、沒有多核支持、沒有unicode支持、c api太難用,而且比較糾結的是Lua 版本升級向來是不兼容的,這一點和Python兄弟很像,很任性。如果從5.1是要想升級到 5.2 要做很多額外的工作(最新版本是5.3.4)。
此外LuaJIT我們也可能會常見,可以理解是Lua的一個高效版,通過ffi把Lua的生態做得更加強大了。至少在sysbench啟動的時候會明顯看到如下的信息:
sysbench 1.1.0 (using bundled LuaJIT2.1.0-beta3)
操作系統層面如果調用lua命令,會發現是系統自帶的。兩者的版本明顯不同。
# lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio,
到了這里,我們可以設定一個小目標,我們自己來定制Lua模板,來滿足我們制定業務需求的測試場景,如果需要調整事務的大小和DML的比例,也可以通過配置靈活實現,想想多美好。
所以我們要做的一件事情就是在IDE中配置,我們選擇IntelliJ,安裝一個Lua插件。
我們選擇一個相對較新的版本
然后在IntelliJ里面配置插件,選中jar包即可。
插件EmmyLua就這樣完成了安裝,我們可以通過這種方式先看看sysbench里面的Lua模板,看看下一步該怎么做。
如果重建一個工程,我們會明顯看到這個Lua的選項。
我沒有學過Lua,但是我看Lua腳本的時候,發現和MHA里面的Perl語法很相似,有很多我覺得就是c的風格。總體易讀性更強,因為模板的代碼很簡練,我們能很快找到重點。自己要定制的話相比MHA定制要容易一些(目前拍腦袋認為)。
比如insert的模板就是這些內容,除了oltp_common的內容,實際需要控制的邏輯還是很簡潔的。
以上就是關于“Lua是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。