Just another Purebasic Optimizer V 2.01

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

@Dr. Shrek: Ich habe den Optimierer auch nicht für die Zusammenarbeit mit Tailbite programmiert.

@NTQ: Mit der aktuellen Version (2.01) ist der Fehler behoben.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Deeem2031 hat geschrieben:@Dr. Shrek: Ich habe den Optimierer auch nicht für die Zusammenarbeit mit Tailbite programmiert.
Schade.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@Deeem2031
hab jetzt mal dein tool ausprobiert.

D_Optimizer_x86: nach der optimierung funktioniert kein programm mehr fehlerfrei.

D_Optimizer_Net: alles funktioniert wie gewohnt.

ist das deine rache für die .NET hasser? :mrgreen:

ansonsten gute arbeit und vorallem eine super idee. mach weiter so! :allright:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Ja,.. aber der SourceCode der beiden Programme ist doch völlig identisch :?

Also das kann ich mir wirklich nicht erklären... vielleicht sollte ich erstmal alle Bugs aus PB für PB.Net übernehmen, bis ich weiter an PB.Net Projekten arbeite... ;)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

:D

aber wenn ich die logs vergleiche gibt es schon kleine unterschiede.

NET:

Code: Alles auswählen

...
Adding 'CMP    byte [Edx], 0'
Adding 'JE     _EndIf619'
Modify 'POP dword [esp+76]' to 'MOV    dword [esp+76],eax'
Deleting 'PUSH eax'
Modify 'POP dword [esp+72+4]' to 'MOV    dword [esp+72+4],edx'
Modify 'MOV    dword [esp+76],eax' to 'MOV    dword [esp-4+76],eax'
Deleting 'PUSH edx'
Deleting 'JNE No94'
...
x86:

Code: Alles auswählen

...
Adding 'CMP    byte [Edx], 0'
Adding 'JE     _EndIf619'
Modify 'POP dword [esp+76]' to 'MOV    dword [esp+76],eax'
Deleting 'PUSH eax'
Modify 'POP dword [esp+72+4]' to 'MOV    dword [esp+72+4],edx'
Deleting 'PUSH edx'
Deleting 'JNE No94'
...
wie du siehst fehlt

Code: Alles auswählen

Modify 'MOV    dword [esp+76],eax' to 'MOV    dword [esp-4+76],eax' 
bei der x86 version.

das blöde an der NET version ist leider die 3x langsamere optimierungsgeschwindigkeit.

NET:

Code: Alles auswählen

Finished after 4531 ms
x86:

Code: Alles auswählen

Finished after 1453 ms
ferner noch scheint die x86 version mehr zeilen auszulesen?!

NET:

Code: Alles auswählen

19330 lines read
x86:

Code: Alles auswählen

19335 lines read
sehr verwirrend das ganze. :?

aber wie gesagt, bis auf die geschwindigkeit ist die NET version top, soweit. :allright:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Antworten