BBCode Link
[url=http://www.purearea.net/pb/showcase/show.php?id=156] [b]Optimizer v.1.5[/b][/url]
Nicht f?r PB4.0 -> wird nicht mehr weiterentwickelt!
http://forums.purebasic.com/german/viewtopic.php?t=2108
Features List:
# Macros!
- Ben?tigt Userlibrary
- Mit Einschr?nkungen: keine lokale Variablen, mind. ein Parameter!
# Userlibrary
- OptimizerPause() und OptimizerResume()
- Rechnen mit Doubles (64bit-Floats)
- Alle Funktionen werden mit Hilfe des Optimizers geinlined (wie Makro)
# Ausschneiden von unben?tigten Prozeduren
- Wenn eine Prozedur nur erstellt (mit Procedure ...) wird, aber _nirgends_ im Code Bezug auf sie festgestellt werden kann, wird sie ausgeschnitten. (N?tzlich f?r Include-Files mit vielen Funktionen)
# Inlinen von Prozeduren:
- PeekF(), PokeF(), PeekL(), PokeL(), PeekW(), PokeW(), PeekB(), PokeB()
- CallFunctionFast()
- Red(), Green(), Blue(), RGB()
- ACos(), ASin(), ATan(), Int(), Log(), Log10()
# Multiplikationen mit festen Werten
z.B. a * 151, a * 1025, u.a.
anstatt IMUL werden andere, schnellere Operationen gebraucht
# Asm-Optimizations
- a = b - -a
- a % 2, a % 4, ... a % 2^n
wird zu a&1, a&3, ... a&(2^n-1)
- und ein paar kleinere..
Was tut es:
Es optimiert den Asm-Output von PB. Dabei werden ein paar Asm-Tricks und auch ganz einfache K?rzungen im PureBasic.asm vorgenommen.
Anleitung:
1. Zip downloaden und entpacken
2. FAsm2.exe, FAsm.exe, IMULOptimierungen.txt und Optimizer.ini in den Ordner PBCompilers kopieren (dabei kann FAsm.exe bedenkenlos ersetzt werden, man kann auch einfach die bestehende FAsm.exe in Fasm2.exe umbenennen und nicht die aus dem Zip nehmen)
3. Irgendwas kompilieren
4. Ein Fenster "Optimizer" erscheint
- Hide this window next time (beim n?chsten mal kompilieren dieses Fenster nicht mehr anzeigen)
- Optimize PureBasic.asm (soll der Asm-Output optimiert werden?)
5. Fertig
(Um das Optionenfenster wieder sichtbar zu machen, einfach mal in die Optimizer.ini schauen)
Wies Funktioniert:
Die neue FAsm.exe aus dem Zip stellt den Optimierer dar. Er wird mit den FAsm Parametern durch den PBCompiler aufgerufen. Nun optimiert er das PureBasic.asm und gibt dann die erhaltenen Parameter an den richtigen FAsm (FAsm2.exe) weiter, der das dann zu einem PureBasic.obj kompiliert. Danach l?uft es standardm?ssig weiter.
Resultate (f?r ein unrealistisch gutes Beispiel (zu finden im deutschen Forum)):
ohne Opt.: 5078ms (PB) gegen 2453ms (Asm)
mit Opt.: 2542ms gegen 2532
|
|
[170 KB] (1251 Downloads)
The source is included in the program package
|