lua陣列操作效能測試
lua的表在下標連續時可以當陣列用,此時#表名返回元素個數。
v={} s=os.clock() for i=1,1000000 do v[#v+1]=i end e=os.clock() print(#v,e-s) w={} cnt=0 s=os.clock() for i=1,1000000 do v[cnt+1]=i cnt=cnt+1 end e=os.clock() print(#v,e-s) 輸出----- 1000000 0.192 1000000 0.097
3種訪問方法。
-- by index sum=0 s=os.clock() for i=1,1000000 do sum=sum+v[i] end e=os.clock() print(sum,e-s) -- by pairs sum=0 s=os.clock() for a,b in pairs(v) do sum=sum+b end e=os.clock() print(sum,e-s) -- by ipairs sum=0 s=os.clock() for a,b in ipairs(v) do sum=sum+b end e=os.clock() print(sum,e-s) 輸出----- 500000500000 0.07 500000500000 0.087 500000500000 0.094
如果中間有空值,pairs會自動忽略,就比下標挨個判斷是否為空快了。
v[10]=nil print(#v) -- by index sum=0 s=os.clock() for i=1,1000000 do if v[i]~=nil then sum=sum+v[i] end end e=os.clock() print(sum,e-s) -- by pairs sum=0 s=os.clock() for a,b in pairs(v) do sum=sum+b end e=os.clock() print(sum,e-s) 輸出----- 1000000 500000499990 0.125 500000499990 0.091
下標不從1開始或不連續,#表名的結果都是錯的
v1={} v1[0]=1 v1[1]=3 v1[2]=9 print(#v1) print(v1[0]) v2={} v2[0]=1 v2[2]=3 v2[5]=9 print(#v2) 輸出---- 2 1 0
相關文章
- 陣列,map,unordered_map的簡單效能測試陣列
- 陣列排序的測試陣列排序
- 深圳軟體測試培訓:java中陣列的操作Java陣列
- 陣列操作陣列
- vue陣列操作遇到坑-關於陣列操作Vue陣列
- 優先佇列的效能測試佇列
- 效能測試 —— Jmeter 命令列詳細JMeter命令列
- 一個測試陣列用法的例子陣列
- Lua、Luajit、Python、Node.js和Java效能測試對比PythonNode.jsJava
- javascript陣列操作JavaScript陣列
- Numpy陣列操作陣列
- Scala陣列操作陣列
- Jquery陣列操作jQuery陣列
- 簡單介紹Lua一維陣列與多維陣列的使用陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- 百度測試1,陣列單詞首位相同測試(php)陣列PHP
- 記一次陣列操作:陣列 A 根據陣列 B 排序陣列排序
- 對陣列的操作陣列
- JS常用陣列操作JS陣列
- JavaScript陣列常用操作JavaScript陣列
- JS中陣列操作JS陣列
- 陣列的操作(2)陣列
- Scala的陣列操作陣列
- java操作Oracle效能測試小工具(急!!!!)JavaOracle
- [android]android效能測試命令列篇Android命令列
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- 【效能測試】使用ab做Http效能測試HTTP
- 陣列的操作-變形陣列
- Python陣列常用操作Python陣列
- Numpy 陣列簡單操作陣列
- Java操作Json陣列JavaJSON陣列
- perl操作二維陣列陣列
- 效能測試:分散式測試分散式
- Jmeter介面測試+效能測試JMeter
- 檢測陣列更新陣列
- Java8中的流操作-基本使用&效能測試Java
- 【操作教程】利用YCSB測試巨杉資料庫效能資料庫
- 微服務測試之效能測試微服務