![]() |
Compiler frage - mehrfach einbinden functionen
Hi,
gibt es eine Möglichkeit funktionen etc. durch den compiler direkt an die jeweilige Stelle einzubinden, wo sie genutzt werden.. ? Sprich - wenn die funktion 2x im Program genutzt wird, dann sollte sie auch 2x im code vorhanden sein Was der Programgröße logischerweise abträglich aber die Performance verbessern sollte... Danke für tips Ralf |
Re: Compiler frage - mehrfach einbinden functionen
Ab Delphi2005 gibts dafür die Direktive inline. Wenn du das von vorherigen Versionen haben willst, kannst du deine Erwartungen erstmal knicken.
|
Re: Compiler frage - mehrfach einbinden functionen
Also die Geschwindigkeit wird wohl kaum schneller weil das max 4 Prozessorzyklen sind eine Procedure aufzurufen.
|
Re: Compiler frage - mehrfach einbinden functionen
... und weil das vom zusätzlichen (arbeits-)speicherverbrauch mehr als ausgeglichen wird. Mach einfach mal einen kleinen Performanc-Test.
|
Re: Compiler frage - mehrfach einbinden functionen
Zitat:
|
Re: Compiler frage - mehrfach einbinden functionen
Hallo,
wau danke für die schnellen Antworten... 'Inline' ist was ich gesucht habe... Mal sehen ob es was an Geschwindigkeit bringt... Arbeistspeicher ist dabei im Moment nebensächlich.. Tschüs Ralf |
Re: Compiler frage - mehrfach einbinden functionen
Ich hab einen Geschwindigkeitstest gemacht. Selbst bei einer extrem kleinen Prozedur (Inhalt: b:=now<starttime+5/24/3600) liefeert der Dierektaufruf nur etwa 0,3% Geschwindigkeitsvorteil. Da du aber weitaus größere Prozeduren haben wirst ist der Faktor wirklich unerheblich.
|
Re: Compiler frage - mehrfach einbinden functionen
Bei einem Inc-Nachbau komme ich auf 100% Geschwindigkeitserhöhung.
|
Re: Compiler frage - mehrfach einbinden functionen
Hi,
vorteile sehe ich dann, wenn Berechnungen in Schleifen ausgeführt werden die auf funktionen zurückgreifen, da dann bei jedem Schleifendurchgang der Sprung zur jeweiligen Funktion entfällt... cu Ralf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz