Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RtlVclOptimize 2.77 - DelphiSpeedUp Code im eigenen Programm (https://www.delphipraxis.net/91692-rtlvcloptimize-2-77-delphispeedup-code-im-eigenen-programm.html)

jbg 8. Mai 2007 18:38


RtlVclOptimize 2.77 - DelphiSpeedUp Code im eigenen Programm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte eigentlich vor an den Delphi Tagen 2007 eine Unit mit den Optimierungen von DelphiSpeedUp vorzustellen. Jedoch kam mir etwas dazwischen, wodurch ich nicht an den Delphi Tagen 2007 teilnehmen konnte und auch keine Zeit hatte, diese Unit für die Öffentlichkeit aufzubereiten.

Wer also schon immer mal die Optimierungen aus DelphiSpeedUp in seinem eigenen Programmen haben wollte, kann sich nun die RtlVclOptimize.pas Unit herunterladen und sie in seine Projekte einbinden.


Installationsanleitung
  • 1. Entpacken der RtlVclOptimize.zip in einen beliebigen Ordner.
  • 2. Die Unit zum Delphi-Projekt hinzufügen. Am besten recht weit oben in der uses-Liste, da dadurch bereits die initialization-Abschnitte der andere Units auf die schnelleren Funktionen zugreifen.
Was gibt es zu beachten
  • Die Unit muss in der EXE-Datei stecken und nicht in einem Package. Denn würde das Package entladen, könnte man sich vor den auftretenden Zugriffsverletzungen nicht retten, weil die Funktionen auf die die original-RTL Funktionen umgeleitet werden, nicht mehr im Speicher sind.
Was ist RtlVclOptimize.pas nicht, bzw. was fehlt im Vergleich zu DelphiSpeedUp
  • Die Unit ist nicht die FastCode Library. Diese muss extra heruntergeladen werden, wenn man deren RTL-Optimierungen zusätzlich nutzen will.
  • FastObj ist nicht enthalten
  • Sämtliche nur für die IDE interessante Optimierungen fehlen
Lizenz
  • Die Unit steht unter der MPL 1.1. Darf also auch in kommerziellen/closed-source Anwendungen eingesetzt werden

Gecko 2. Jun 2007 23:59

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Da sag ich mal danke fürs frisieren ;)
Wo bekomme ich die FastCode Libary?

Garfield 15. Sep 2007 21:10

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
http://fastcode.sourceforge.net/

Luckie 15. Sep 2007 21:42

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Werden dadurch mit Delphi erstellte Programme schneller gestartet oder was bringt diese Unit in einem Programm für Vorteile?

jbg 15. Sep 2007 21:50

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Ob sie schneller starten, wage ich zu bezweifeln, weil das ja IDE spezifische Optimierungen sind. Aber die eigenen Programme werden ein klein wenig schneller. Vor allem die String-Vergleiche mit "if S <> 'str' then" oder "if S = 'str' then" gehen um einiges schneller, da keine kleiner oder größer Information beim Vergleich ermittelt werden muss.

Auch die TList/TObjectList wird durch die Unit stark beschleunigt. Dynamische/Message Methoden werden schneller aufgerufen. Zwar immernoch langsamer als virtuelle, aber bis zu 8 mal so schnell als vorher. Und noch einiges mehr.

Mit FastCode kombiniert ergibt das einen größeren Geschwindigkeitsschub.

Luckie 15. Sep 2007 21:53

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Das ist natürlich ein Wort. Für normale Anwendungen wird es sich wahrscheinlich nicht lohnen aber für Parser wäre es bestimmt interessant.

Bernhard Geyer 15. Sep 2007 23:15

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Zitat:

Zitat von jbg
Ob sie schneller starten, wage ich zu bezweifeln, weil das ja IDE spezifische Optimierungen sind. Aber die eigenen Programme werden ein klein wenig schneller. Vor allem die String-Vergleiche mit "if S <> 'str' then" oder "if S = 'str' then" gehen um einiges schneller, da keine kleiner oder größer Information beim Vergleich ermittelt werden muss.

Da könnte ich bei unserer SW schon ein paar Bottlenecks entschärfen.
Mal schauen ob ich in den nächsten Wochen ein paar "ruhige" Stunden finde ...

jbg 15. Sep 2007 23:32

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Naja, das mit den "if S <> 'str' then", "if S = 'str'" spürt man hauptsächlich bei Delphi 5 bis 2006. Ab Delphi 2007 ist bereits eine schnellere String-Vergleichsfunktion eingebaut, wo das Equal, NotEqual fast nichts mehr herausholen kann.

Bernhard Geyer 16. Sep 2007 08:33

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
Zitat:

Zitat von jbg
Naja, das mit den "if S <> 'str' then", "if S = 'str'" spürt man hauptsächlich bei Delphi 5 bis 2006. Ab Delphi 2007 ist bereits eine schnellere String-Vergleichsfunktion eingebaut, wo das Equal, NotEqual fast nichts mehr herausholen kann.

Hab noch D6 im Haupteinsatz :-)

Corpsman 16. Sep 2007 13:16

Re: RtlVclOptimize - DelphiSpeedUp Code in eigenen Programme
 
LOL,

Ich schreib grad zufällig nen Parser für meinen Raytracer ;).

Diese Unit kommt mir daher mehr als nur gelegen.

Sehe ich das Richtig mit Einbinden meinst du das in etwa so :

Delphi-Quellcode:

Program Simple_Ray;

Uses
  // Bewirkt das die Sringvergleiche deutlich schneller werden.
  RtlVclOptimize,
  Forms,
  unCommenter In '..\..\DatenSteuerung\Tokenizer\UnCommenter.pas',
  Tokenizer In '..\..\DatenSteuerung\Tokenizer\Tokenizer.pas',
  Unit1 In 'Unit1.pas' {Form1},
  Raytracer In 'Raytracer.pas',
  Raytracer_Math In 'Raytracer_Math.pas',
  RayParser In 'RayParser.pas',
  Unit2 In 'Unit2.pas' {Form2};

{$R *.RES}

Begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
End.
Hab das zumindest nu mal so gemacht.

Ich nutze Delphi 5 und normalerweise sind in der unit Links dann lauter blaue Punkte ( überall bei dem Code den er Nutzt ).

Nach dem Compilieren des Projects sind in der RtlVclOptimize unit aber keine Blauen Punkte.

Tut ads dann Trotzdem ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz