Aber keine Angst, mein Optimierer läuft zusammen mit remis, man kann also beide verwenden.
Link: http://www.deeem2031.de/PB/D_Optimizer.zip
Features:
(bei Proceduren)
-löscht unnötige Push/Pops bei Procedureaufrufen
-der ClearLoop wird durch eine schnellere Routine ersetzt
-Ecx wird immer vom Stack gelöscht
-Esi wird wenn möglich mit Esp ersetzt
-steht ein ProcedureReturn am Ende einer Procedure wird das zurücksetzen des Ergebnisses gelöscht
(anderes)
-For-Next Schleifen werden, wenn möglich, vervielfacht (der Code wird zwar größer, dafür läuft es aber ein wenig schneller)
-ersetzen von SYS_StringEqual mit Nullstrings durch direkte Verarbeitung
-löschen von doppelten Stringenden (verringert nur eventuell die Größe, auf die Geschwindigkeit hat es keinen Einfluss)
Installations-Anleitung:
-ohne remis Optimierer:
->"...\Purebasic\Compilers\Fasm.exe" zu "Fasm2.exe" umbenennen
->Den Inhalt der zip in den "...\Purebasic\Compilers\"-Ordner packen
->freuen

-mit remis Optimierer:
->"...\Purebasic\Compilers\Fasm.exe" zu "Remis_Optimierer.exe" umbenennen (man kann der Exe auch einen anderen namen verpassen)
->Den Inhalt der zip in den "...\Purebasic\Compilers\"-Ordner packen
->"D_Optimierer.ini" öffnen und bei "FasmExe" "Remis_Optimierer.exe" angeben -> "FasmExe = Remis_Optimierer.exe"
->freuen

Noch'n Bsp:
Code: Alles auswählen
Procedure a(x)
Protected a,b,c
a = x
ProcedureReturn a
EndProcedure
#r = 40000000
s.s = ":)"
st1 = GetTickCount_()
For i = 1 To #r
If s
a(2)
EndIf
Next
t1 = GetTickCount_()-st1
MessageRequester("",Str(t1))
-ohne Optimierung: 1172 ms
-mit Optimierung: 406ms