Just another Purebasic Optimizer V 1.14

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 »

Der SOurce würde dir aber nicht viel bringen, da du alle PHP-String-befehle übersetzen müsstest. Oder du erzählst mir, wie ich 'ne Linux-Library erstelle und ich übersetz die PHPString-Lib für Linux.

Für alle die OnError-Fehler mitm Optimierer bekommen: Werds bald fixen, muss das System nochma neu aufbauen.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Schade :|
Bild
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Version 1.05 ist fertig:

Was gibts neues? Nichts, ich hab nur alle bekannten Bugs behoben. :)

@MVXA: Da ich selber auch versuche mich an Linux zu gewöhnen und mit Purebasic rumprobiere, wird es vielleicht bald auch eine Linux-Version geben.

EDIT: Da warscheinlich kaum einer den Beitrag schon gelesen hat:
Version 1.06:

-ersetzen von SYS_StringEqual mit Nullstrings durch direkte Verarbeitung

D.h. alle Vergleiche von Strings mit einem NullString, sprich "If string.s" laufen schneller. ('If string.s <> ""' wird nicht verbessert)

Bsp:

Code: Alles auswählen

Procedure a(x) 
  Protected a,b,c 
  a = x 
EndProcedure 

#r = 40000000 

s.s = ""

st1 = ElapsedMilliseconds()
For i = 1 To #r
  a(2) 
  If s
  EndIf
Next 
t1 = ElapsedMilliseconds()-st1 

MessageRequester("",Str(t1))
ohne Optimierung: ca. 1030 ms
mit Optimierung: ca. 375 ms
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Version 1.07:

-Bugfix beim löschen der unnötigen Register-Pushs
-steht ein ProcedureReturn am Ende einer Procedure wird das zurücksetzen des Ergebnisses gelöscht

(hab jetzt den ersten Post auch aktuallisiert)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

ich habe jetzt mal nur mit deinem opti (ohne remi´s) versuche gemacht.

Ohne opti hat das compilieren 1,265 sec gedauert und das ergebniss sah so aus (so soll es auch aussehen):
Bild

Mit deinem opti hat das compilieren 29,297 sec gedauert und das ergebniss sah so aus (so soll es nicht aussehen):
Bild

Ich würde sagen irgendwo optimierst du ein wenig zu viel :mrgreen:

Gruß Nico
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Das es langsam ist, ist klar, Geschwindigkeit braucht nunmal seine Zeit ( :lol: ) aber das der Style von Windows sich ändern ist äußerst seltsam. Vielleicht stellst du in der D_Optimizer.ini die ganzen Features mal aus und schaltest sie einzeiln ein, so könnte ich das Problem eventuell beseitigen.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

zur erklärung was das ist wo die farbe fehlt. das sind textgadget´s wo ich halt die farbe für hintergrund und text geändert habe.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Hast du denn mal versucht die einzelnen Optimierungen abzuschalten um rausfinden worans liegt? Dass sich die Hintergrundfarbe ändert kann nämlich nicht direkt vom Optimierer abhängen, der optiiert ja keine API-Aufrufe oder ähnliches. Warscheinlich steht dein Aufruf in einer Procedure, die durch das Optimieren nicht mehr so funktioniert wie sie soll.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Ich hab grad ein wenig mit Fred geplaudert und da sich Fred nicht an Standards halten kann, muss ich paar Dinge, die normalerweise super funktionieren, wieder rausnahmen. So kommen die optimierten Procs z.B. mit Callbacks nicht klar, weil intern Esi, Edi und Ebx geändert werden, ohne sie zurückzusetzen. Was zwar in PB Standard zu seien scheint, bei den meisten anderen Sprachen aber nicht. Von daher, eine gefixte (und leider nicht mehr so schnelle) Version 1.10:

http://www.deeem2031.de/PB/D_Optimizer.zip
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

Deeem2031 hat geschrieben:... So kommen die optimierten Procs z.B. mit Callbacks nicht klar, weil intern Esi, Edi und Ebx geändert werden, ohne sie zurückzusetzen....

http://www.deeem2031.de/PB/D_Optimizer.zip
Genau das schein bei mir dsa prob gewesen zu sein denn wenn ich jetzt deinen optimizer benutze (also den neuen geänderten) dann siehts aus wies aussehen soll :allright:
Antworten