Der schlimme Missbrauch von Makros! Diese kompakte und versteckte Redundanz des Codes.
(STRG+F)
Also das hier läuft bei mir:
Code: Alles auswählen
;Bitte Debugger ausschalten (DisableDebugger bringt nichts!)
start = ElapsedMilliseconds()
zeichen.s{28} = "Hallo sichtbares Universum "
;Macro M1 : i+1 : str.s = "Hallo sichtbares Universum "+Str(i) : EndMacro ;Das funktioniert nicht!
Macro M1 : i+1 : str.s = zeichen+Str(i) : EndMacro ;Das funktioniert noch viel höher !!!
Macro M2 : M1 : M1 : M1 : M1 : M1 : M1 : M1 : M1 : M1 : M1 : EndMacro ;10x
Macro M3 : M2 : M2 : M2 : M2 : M2 : M2 : M2 : M2 : M2 : M2 : EndMacro ;100x
Macro M4 : M3 : M3 : M3 : M3 : M3 : M3 : M3 : M3 : M3 : M3 : EndMacro ;1000x
Macro M5 : M4 : M4 : M4 : M4 : M4 : M4 : M4 : M4 : M4 : M4 : EndMacro ;10000x
;Macro M6 : M5 : M5 : M5 : M5 : M5 : M5 : M4 : M4 : M4 : M4 : EndMacro ;64000x !!! läuft bei mir
;Macro M6 : M5 : M5 : M5 : M5 : M5 : M5 : M4 : M4 : M4 : M4 : M4 : EndMacro ;65000x !!! führt zum Absturz
Macro M6 : M5 : M5 : M5 : M5 : M5 : M5 : M5 : M5 : M5 : M4 : M4 : M4 : M4 : M4 : M4 : M4 : M4 : EndMacro ;jetzt sind 98000 drin :)
M6
ende = ElapsedMilliseconds() - start
MessageRequester("Ergebnis","Anzahl: "+Str(i)+" / Zeit: "+StrF(ende/1000,2)+" Sekunden")
;Das geht auf jedenfall ;):
i = 0
start = ElapsedMilliseconds()
For z = 0 To 9
For y = 0 To 9
For x = 0 To 9
For w = 0 To 9
For v = 0 To 6
i+1
str.s="Hallo sichtbares Universum."+Str(i)
Next v
Next w
Next x
Next y
Next z
ende = ElapsedMilliseconds() - start
MessageRequester("Ergebnis","Anzahl: "+Str(i)+" / Zeit: "+StrF(ende/1000,2)+" Sekunden")
Code: Alles auswählen
;Bitte Debugger ausschalten (DisableDebugger bringt nichts!)
start = ElapsedMilliseconds()
s.s = ""
z.s = "Hallo sichtbares Universum "
Macro Q:Str(i):EndMacro
Macro M1:i+1:s=z+Q:EndMacro ;Das funktioniert noch viel höher !!!
Macro M2:M1:M1:M1:M1:M1:M1:M1:M1:M1:M1:EndMacro ;10x
Macro M3:M2:M2:M2:M2:M2:M2:M2:M2:M2:M2:EndMacro ;100x
Macro M4:M3:M3:M3:M3:M3:M3:M3:M3:M3:M3:EndMacro ;1000x
Macro M5:M4:M4:M4:M4:M4:M4:M4:M4:M4:M4:EndMacro ;10000x
Macro M6:M5:M5:M5:M5:M5:M5:M5:M5:M5:M5:EndMacro ;100000x
Macro M7:M6:M5:M5:M5:M5:M4:M4:M4:M4:M4:M4:M4:M4:M3:M3:M3:M3:M3:M3:M3:M3:M2:M2:M2:M2:M2:M2:M2:M1:M1:M1:M1:EndMacro ;jetzt sind auch noch 148874x drin :)
M7
ende = ElapsedMilliseconds() - start
MessageRequester("Ergebnis","Anzahl: "+Str(i)+" / Zeit: "+StrF(ende/1000,2)+" Sekunden")