91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

sysbench怎么用

發布時間:2022-01-18 15:16:18 來源:億速云 閱讀:168 作者:iii 欄目:編程語言

本篇內容主要講解“sysbench怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“sysbench怎么用”吧!

對于sysbench,里面用到了大量的lua模板,而且lua模板是sysbench壓測的必備選項,所以我們要更好的理解它的實現邏輯,如果可以根據自己的需求來定制它的實現,使得符合真實業務,這種基準測試會更有意義。想到了這些,說干就干。

我們從sysbench的角度來理解Lua,開始Lua的學習旅程。

sysbench啟動測試的時候,會在頭部顯示如下的信息:

sysbench 1.1.0 (using bundled LuaJIT2.1.0-beta3)

這句話信息量很大,我們可以慢慢分析,可以明顯看到sysbench匹配的這個Lua是選用了LuaJIT,是一個beta版本。而如此一來,我們就需要確認兩點,一個是Lua調用c的方法,在這里使用了LuaJIT,那么應該是使用ffi庫來調用c了,否則一般是使用c的Lua C API這種方式。

這個信息可以在sysbench基礎的lua文件中看到如下的內容印證。

local ffi = require("ffi")

接著第二個問題,系統層面是默認安裝了Lua,基本上是5.1以上的版本,但是LuaJIT我們印象中是不曾安裝過。安裝sysbench的時候是否又安裝了LuaJIT呢?我們使用find來簡單驗證一下,果然是默認安裝了。

sysbench怎么用

這是這個地方的引用是sysbench在腳本中綁定的路徑,沒有放到系統級的環境變量中。LuaJIT里調用c還是很流暢的,比如可以寫一個簡單的腳本,如下:

sysbench怎么用

該例子參考了網絡資源,執行結果如下:

sysbench怎么用

然后我們就可以暫時先來系統的學習一下Lua,然后抓住要點之后再來看sysbench的代碼就會容易多了。

先來一個最簡單的Hello World

> print("Hello World!")

Hello World!

> print 'hello world'

hello world

Lua中的保留字有下面的這些:

and break do else

elseif end false for

function if in local

nil not or repeat

return then true until

while

如果要添加注釋,有單行和多行,多行可以使用--[[ xxx --]]的方式來標注。

> -- this is a test comment --單行注釋

> --[[ --多行注釋

>> this is a test,line 1

>> this is a test comment line 2

>> this is a test comment line 3

>> --]]

如果變量b沒有賦值,就會顯示為nil,我們可以基于這個方式來處理一下變量值。

> print (b)

nil

> b=10

> print b --這種命名方式是不達標的

stdin:1: '=' expected near 'b'

> print(b)

10

然后就開始逐步有難度了。

我們看看學習套路之數據類型, Lua中有8個基本類型分別為:nil、boolean、number、string、userdata、function、thread和table。

要驗證還是比較容易的,使用type方法即可。

> print (type('hello world'))

string

> print (type(10+3))

number

> print (type(print))

function

> print (type(type))

function

> print (type(nil))

nil

> print (type(true))

boolean

> print (type(type(x)))

string

遍歷元組

如果有鍵值對這種形式的數據,可以通過循環映射的方式來返回,下面的兩個實例,邏輯看起來是一樣的,最后的輸出還是有較大的差別。

> tab1 = {key1='val1',key2='val2','val3'}

> for k,v in pairs(tab1) do

>> print(k.."-"..v)

>> end

1-val3

key1-val1

key2-val2

> tab1 = {key1='val1',key2='val2',key3='val3'}

> for k,v in pairs(tab1) do

print(k.."-"..v)

end

key1-val1

key3-val3

key2-val2

關于類型轉換,是在程序中很常見的一類處理方式,數值轉換為字符型,或者字符型轉換為數字,這一點上Lua的表現還不錯。

> print("2" + 6)

8

> print('2' + 6)

8

>

> print ("2"+"6")

8

> print ("2+6")

2+6

> print ("-2e2"*"6")

-1200

> print ("error"+1)

stdin:1: attempt to perform arithmetic on a string value

stack traceback:

stdin:1: in main chunk

[C]: ?

>

> print ("a".."b")

ab

> print(123..456)

stdin:1: malformed number near '123..456'

> print(123 .. 456)

123456

如果要計算字符的長度,可使用len方法或者變量的方式。

> len = "www.jeanron100.com"

> print(#len)

18

> print(#"www.jeanron100.com")

18

如果要初始化table,則可以使用如下的方式:

比如聲明這樣一個table a,然后賦值取值做數據處理,里面比較重要的就是下標的處理了,Lua的實現下標是從1開始。

> a = {}

> a["key"] = "value"

> key=10

> a[key]=100

> a[key]=a[key]+1000

> for k,v in pairs(a) do

>> print(k .. ":" .. v)

>> end

key:value

10:1100

如果要強化一下循環的部分,可以參考下面的例子,把fruits里的元素都循環輸出。

[root@oel641 lua]# cat test1.lua

local fruits={'apple','orange','banana'}

for key,val in pairs(fruits) do

print("key",key)

end

[root@oel641 lua]# lua test1.lua

key 1

key 2

key 3

還有Lua中的函數,甚至支持匿名函數。

[root@oel641 lua]# cat test3.lua

function factorial1(n)

if n == 0 then

return 1

else

return n * factorial1(n-1)

end

end

print (factorial1(5))

factorial2=factorial1

print(factorial2(5))

這段代碼和c非常相似,但是Lua里面比較有意思,函數可以更加靈活的使用,直接通過類似賦值的方式就搞定了,輸出結果如下:

[root@oel641 lua]# lua test3.lua

120

120

到此,相信大家對“sysbench怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高台县| 内江市| 调兵山市| 贵港市| 洛阳市| 民县| 建水县| 新郑市| 辉南县| 库车县| 盖州市| 高陵县| 乐亭县| 济南市| 蓝山县| 阿拉尔市| 崇义县| 汕头市| 临沧市| 乌拉特后旗| 疏勒县| 武清区| 鄂托克前旗| 贵定县| 施甸县| 北海市| 济南市| 阳谷县| 义乌市| 延寿县| 航空| 青海省| 重庆市| 宁乡县| 遂平县| 鄂托克前旗| 祁连县| 北碚区| 方正县| 广州市| 区。|