ich habe mal aus interesse das gleiche skript so gut wie möglich in mehreren programmiersprachen geschrieben um zu messen wie viel zeit diese dafür benötigen. in dem skript wird eine variable so lange um 10 erhöht bis diese variable 100000000 erreicht. dieser vorgang wird viermal ausgeführt damit man einen durchschnittswert erhält. ich hoffe das die skripte auch stimmen und die zeitwerte auch.
AutoIt
$diff = 0
for $a = 0 to 3
$i = 0
$timer = TimerInit()
while $i <> 100000000
$i += 10
WEnd
ConsoleWrite(TimerDiff($timer)&@CRLF)
$diff += TimerDiff($timer)
Next
ConsoleWrite($diff/4&@CRLF)
1. durchlauf: 10584.4285381053ms
2. durchlauf: 10586.5284718916ms
3. durchlauf: 10490.6476379452ms
4. durchlauf: 10606.4572835072ms
durchschnitt: 10567.0634941793ms
Blitz3D
FreeBASIC
Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
dim as long i,diff,timer1
dim as integer a
diff = 0
For a = 0 To 3
i = 0
timer1 = GetTickCount()
While i <> 100000000
i += 10
Wend
Print GetTickCount() - timer1
diff += GetTickCount() - timer1
Next
Print diff/4
sleep
Alles anzeigen
1. durchlauf: 31ms
2. durchlauf: 31ms
3. durchlauf: 32ms
4. durchlauf: 31ms
durchschnitt: 31.25ms
Java
public class Time {
public static void main(String[] args) {
long diff = 0;
for(int a = 0; a < 4; a++){
long i = 0;
long timer = System.currentTimeMillis();
while(i!=100000000){
i += 10;
}
System.out.println(System.currentTimeMillis()-timer);
diff += System.currentTimeMillis()-timer;
}
System.out.println(diff/4);
}
}
Alles anzeigen
1. durchlauf: 31ms
2. durchlauf: 15ms
3. durchlauf: 16ms
4. durchlauf: 16ms
durchschnitt: 19ms
Python
import time
diff = 0
for a in range(0,4):
i = 0
timer = time.time()
while i <> 100000000:
i += 10
print time.time() - timer
diff += time.time() - timer
print diff/4
Alles anzeigen
1. durchlauf: 2797.00016975ms
2. durchlauf: 2812.00003624ms
3. durchlauf: 2796.99993134ms
4. durchlauf: 2812.99996376ms
durchschnitt: 2804.75002527ms
Lua
require "socket"
diff = 0
for a = 0,3 do
i = 0
timer = socket.gettime()*1000
while i ~= 100000000 do
i = i + 10
end
print(socket.gettime()*1000 - timer)
diff = diff + socket.gettime()*1000 - timer
end
print(diff/4)
Alles anzeigen
1. durchlauf: 2031.25ms
2. durchlauf: 2046.875ms
3. durchlauf: 2062.5ms
4. durchlauf: 2062.5ms
durchschnitt: 2050.78125ms
Ruby
ActionScript
onFrame (1) {
var diff = 0;
var a:int;
var i:uint = 0
var timer = 0
for(a = 0; i < 4;i++){
i = 0;
timer = flash.utils.getTimer();
while(i != 100000000){
i += 10;
}
trace(flash.utils.getTimer() - timer);
diff += flash.utils.getTimer() - timer;
}
trace(diff/4)
}
Alles anzeigen
komischerweise stürzt swish max immer ab wenn ich es starte aber ohne error meldung.
was haltet ihr davon?
welche skripte könnte man noch schneller machen?