In Lua 4.01, wird die zweite Beispielschleife effizienter sein als die erste? (Sorry, ich weiß nicht, die richtige Terminologie das Problem zu beschreiben.)Lua 4.01 Schleifen und Variablen Optimierung
for k = 1, getn(myTable) do
...
end
local numTable = getn(myTable)
for k = 1, numTable do
...
end
Auch was ist der dritte im Vergleich zu den vierten Beispiele:
for k = 1, 4 do
bigTable[3][k]
...
end
local tempTable = bigTable[3]
for k = 1, 4 do
tempTable[k]
...
end
ich in einigen Skriptsprachen weiß, das ist die Fall. Vielen Dank.
[Bearbeiten]
Ich kam gerade mit einigen Testcode auf Beispiele 2 # 1 vs # zu überprüfen. Diese
function Return_a_Number()
print("############# I am looping.")
return 5
end
for i = 1, Return_a_Number() do
-- do nothing
end
zeigt, dass die GetN() Funktion in Beispiel # 1 nur einmal ausgeführt wird insgesamt statt einmal pro Schleife. Das ist eine gute Sache.
1 vs 2: 1, obwohl es nicht viel ändert. 3 vs 4: definitiv 4, nur ein Tabellenzugriff pro Schleife plus 'tempTable' ist lokal, was bedeutet, dass der Zugriff schneller ist. – user6245072
Der Grund, warum ich nach # 1 vs # 2 frage, ist, dass in einigen Sprachen (JavaScript) das getn-Bit * jedes Mal * ausgeführt wird, wenn die Schleife durchlaufen wird. – posfan12
Ich habe einen Testcode für # 1 vs # 2 hinzugefügt. Nicht sicher, wie man # 3 vs # 4 testet. – posfan12