今天寫到迴圈邏輯,糾結於是用更少的迴圈呼叫函式還是用更少的函式,多迴圈兩次。於是做了個實驗,發現基於c的lua,函式呼叫的代價果然很高。
local tb = {}
local
max = 10000000
for i=1, max
do tb[i] = i
endfunction
check(i,max)
if tb[i] == max-1
then
print("tb["..i.."] = "..tb[i])
endendfor i=1, max
do check(i,max-1)
check(i,max-1)
end
–這段**執行的平均時間為3.3s-3.4s。
「` local tb = {}
local max = 10000000
for i=1, max do
tb[i] = i
endfunction check(i,max)
if tb[i] == max-1 then
print(「tb[「..i..」] = 「..tb[i])
end
endfor i=1,max do
if tb[i] == max-1 then
print(「tb[「..i..」] = 「..tb[i])
end
end
for i=1,max do
if tb[i] == max-1 then
print(「tb[「..i..」] = 「..tb[i])
end
end
for i=1,max do
if tb[i] == max-1 then
pb[「..i..」] = 「..tb[i])
end
end「`
而這段**執行的平均時間為2.0s以內。所以可以認為,選擇方案二更合適。
關於for迴圈的執行效率問題
我以前遇到的問題大概都是這種型別的 1for inti 0 i 100 i 2 7 8和 9 for inti 0 i 10000 i 10 15 這兩個程式那個執行效率高,如果是以前我會毫不猶豫的說是第乙個效率高,這是由於cpu切換的次數比較多導致效能下降,知道這句話不理解什麼原理。我比較贊同下面...
關於for迴圈的累加效率問題(java)
累加的效率問題 目前有下面兩種方法 方法一 long sum 0 for int i 0 i value i 方法二 long sum 0 sum value 1 value 2 當value值等於10000,使用方法一,執行10次有4次會產生15毫秒左右耗時,使用方法二,執行10次無耗時產生。當v...
js FOR迴圈效率問題
引 每個接觸js的開發人員都不可避免的與for迴圈打交道,畢竟這是遍歷必不可少的工具之一。然而當迴圈次數比較大時,效率問題必須重視。在群眾,站長提出了這個話題,回去好好想了下,整理出來,大家一起討論討論。1.倒序比正序效率高?聽好多人說,倒序效率更高,好吧,做個實驗,讓事實說話 測試 複製 測試結果...