Back to the list Optimizer version: 1.5
remi_meier
-
Platform:
Windows Type: Application Genre: - Language: English
read: 11264
8.22 / 9
BBCode Link
[url=http://www.purearea.net/pb/showcase/show.php?id=156&d=1]
[b]Optimizer v.1.5[/b][/url]


Not for PB4.0 -> project abandoned!

http://forums.purebasic.com/german/viewtopic.php?t=2108

Features List:
# Macros!
- Needs user library
- Some restrictions: no local vars, needs at least one parameter

# Userlibrary
- OptimizerPause() and OptimizerResume()
- Calculating with doubles (64bit-Floats)
- All the functions will be inlined by the optimizer (like macros)

# Cuts out unused procedures
- If a procedure was created but never used in any way like @procedure() or procedure(), it wont be compiled into the executable.

# Inlining of procedures:
- PeekF(), PokeF(), PeekL(), PokeL(), PeekW(), PokeW(), PeekB(), PokeB()
- CallFunctionFast()
- Red(), Green(), Blue(), RGB()
- ACos(), ASin(), ATan(), Int(), Log(), Log10()

# Multiplication with constants
i.c. a * 151, a * 1025, etc.

# Asm-Optimizations
- a = b - -a
- a % 2, a % 4, ... a % 2^n
become a&1, a&3, ... a&(2^n-1)
- and some smaller ones


What does it do:
It optimizes the ASM output of PB. To do so, it uses some asm tricks and simple shortages.

Manual:
1. Download zip and extract it
2. Copy FAsm2.exe, FAsm.exe, IMULOptimierungen.txt and Optimizer.ini in the directory "PBCompilers" (you can replace FAsm.exe or rename the old one in FAsm2.exe )
3. Compile something
4. A window "Optimizer" appears
- Hide this window next time (do not show this window again)
- Optimize PureBasic.asm (optimize the current compilation?)
5. Done!
(you can adjust this settings in the Optimizer.ini)

How does this program work:
The new FAsm.exe represents the optimizer. The PB compiler calls it with the FAsm parameters. Now, it optimizes the PureBasic.asm and then calls the real FAsm (FAsm2.exe).

Results (for an unrealistic, good example (you can find it in the German forums)):
without Opt.: 5078ms (PB) versus 2453ms (Asm)
with Opt.: 2542ms versus 2532
[170 KB]    (1251 Downloads)
The source is included in the program package

to vote LogIn or Register an account.




 
 
 
Epyx
03:02:45 2005-09-05
Hi, super Sache mit dem Optimizer ich habe den bislang auch immer benutzt jetzt habe ich fest gestellt das die von dir mit gelieferten FASM und FASM2 exe nicht mit Tailbite zusammen Arbeiten.
Zumindest bei mir erscheint beim Compilen immer ein Fehler, mit den Original Dateien klappt alles. W?re sch?n wenn du das evtl. noch richten k?nntest?!!
Absonsten super Arbeit :)


DarkDragon
06:51:12 2005-05-15
Sehr gut, k?nntest du jedoch noch eine Routine einbauen, die z.B. bei folgenden Kommentaren den Optimizer Ein, bzw. Aus schaltet?

;OptiOff
Blabla
;OptiOn

Sozusagen wie die Debugger Funktionen EnableDebugger und DisableDebugger ;) .

remi_meier
13:07:02 2005-05-16
Danke!
Mit Kommentaren kann ich leider keine Optionen machen, da diese vom PB-Compiler vorher schon rausgeschnitten werden... Ich k?nnte es h?chstens umst?ndlich ?ber eine zus?tzliche Userlib machen, wo ich dann an den Funktionsaufrufen erkennen kann, dass ich hier nicht mehr optimieren soll...
Wenns wirklich n?tzlich sein sollte kann ichs vielleicht einbauen!
PS: K?nnte mir derjenige, der eine tiefe Bewertung abgegeben hat, mir eine E-Mail mit Kommentar schicken (Verbesserungsvorschl?ge)?

DarkDragon
08:14:03 2005-09-05
@Epyx: Das Problem liegt an TailBite, nicht am Optimizer. Wenn du nur das erste mal beim kompillieren des Sources auf nicht optimieren klickst und das zweite mal auf Optimieren und HideWindow, dann dauerts ne Weile, aber es klappt. Warum wissen wir nicht.

Epyx
23:19:37 2005-09-25
So klappt es,
danke DD