Spaßvogel
. Ausgerechnet mein Hauptkandidat dem ich das zutrauen würde stellt diese Frage.
Hehe, ich hatte einmal vor Jahren an einem Wochenende damit angefangen, einfachste Scripte auf Maschinenebene mittels Debugger zu "analysieren". Da sieht man auch schon nach einigen Minuten kein Land mehr...
Für mich am schlimmsten war, dass ich, infolge keinerlei Kenntnis des Quellcodes, auch keinerlei Rückschlüsse auf Programmabläufe schließen konnte. Ich hatte Anfang der 90er im vorherigen Jahrhundert selbst (einfache Basic-) Interpreter und auch lauffähige X86-Assembler geschrieben, daher war mir klar, auf was ich mich einlasse^^
Irgendein Cleverle könnte jetzt ja sagen:" Hey, der "Fehler" im Code kommt doch von der MsgBox-Funktion, du musst doch nur den Einsprung in die (user32.dll-) MessageBoxW-Funktion finden, um dort "in der Nähe" entsprechend zu suchen!"
Gute Idee, aber der Compiler kracht den Code zu mit unendlich vielen "Absicherungen", und packt dazu noch unendlich viele Funktionen in den Code, die das zu interpretierende Script irgendwann ggf. mal gebrauchen könnte(!). Der Compiler würfelt das dann auch noch fleissig durcheinander (aka optimiert) und fertig ist das Code-Chaos.
Letztendlich besteht eine AutoIt-EXE ja aus mehreren hundert Kilobytes Code, auch wenn nur ein einfachstes Script zu interpretieren ist!
Ein "reines", bspw. in C erstelltes Programm, welches letztendlich aus einer Handvoll Kilobytes Maschinencode besteht, ist in einigen Stunden komplett "zerpflückt".
Hat jemand vielleicht ein System zur Hand auf dem er kurz verschiedene AutoIt-Versionen installieren kann? War das schon mit älteren (3.3.10.2, 3.3.8.1, 3.3.6.0 und co. so?)
Eben getestet, Win Server 2012 mit AutoIt 3.3.8.1 völlig unauffällig, die Schleife ist vor und nach der Msgbox gleich schnell. Morgen kann ich das Verhalten auch noch auf Win7 und XP testen.
Übrigens zeigt das kompilierte 3.3.8.1-Script unter Win10 auch das Verhalten, dass die erste Schleife ca. 8-10x schneller läuft wie die zweite nach der MsgBox.
Ergo: WIN10 ist das Problem.