Einzelnen Beitrag anzeigen

OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Performance Inline Assembler vs. Objekt Pascal

  Alt 19. Nov 2003, 15:05
Hallo Hagen!

Vielen Dank für Deine konstruktiven Hinweise! Zu meiner Ehrenrettung muss ich jedoch sagen, dass ich so ab und an gedacht ... und vor allen Dingen die virtuelle Stoppuhr gedrückt habe.

Ich habe in meiner Klasse mehrere Funktionen zum Blenden. Welche ich nutze richtet sich danach in welchem Format der Blending-Faktor ursprünglich anfällt. Die Umrechnung in den Bereich 0..255 und dann mit Integerzahlen rechnen dauert effektiv länger! Das hab ich getestet.

Für die Default Füllfarbe (mit Alphakanal) führe ich Vorberechnungen durch und ersetze dann auch die Division mit 255 durch SHR 8. Das bringt Schwung in den Laden!

Ist mir schon klar, dass 24Bit irgendwo zwischen den Stühlen stehen. Ich habe lange mit der G32 Bibliothek von Alex Desimov gearbeitet. Aber für meine Zwecke sind das meistens 25% verschenkter Speicher. Stattdessen hab ich den Alpha-Kanal ausgelagert und eine Masken-Klassen daraus gebastelt, die ich bei Bedarf über die Bitmap legen kann.

Jetzt hab ich aber noch ein paar Fragen und Anmerkung zu Deiner Liste 1 - 6:

Zitat:
3.) ein Register wird wieder in den Stack gespeichert
Gibt es eine Möglichkeit, den Inhalt eines Registers (eax) direkt in die FPU und umgekehrt zu transferieren?

Zitat:
4.) fwait kann raus, unter neueren CPU's > 286 eh sinnlos.
5.) Stack wird geupdated, POP bewirkt einen Speicherzugriff + ein Inkrement von ESP. besser also eine Stackvariable mit MOV EAX,[ESP] benutzen
Den Code hab ich aus der Fkt Round geklaut. Vorher hab ich über meine lokale Variable Temp gearbeitet. Das war noch langsamer.

Viele Grüsse + nochmals danke

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat