Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Property in Variable auslagern (https://www.delphipraxis.net/60287-property-variable-auslagern.html)

faux 4. Jan 2006 22:28


Property in Variable auslagern
 
Hallo!

Ist es eigentlich egal ob ich in einem Code immer und immer wieder auf eine Property zugreife, also zB immer wieder textBox1.Text schreibe, anstatt diesen Wert in eine string Variable auszulagern?
Die Frage stellt sich in C# und Delphi. ;)

Grüße
Faux

3_of_8 4. Jan 2006 22:31

Re: Property in Variable auslagern
 
Du musst dir wohl überlegen, was dir wichtiger ist: Prozessorauslastung oder Speicherauslastung.

Wenn du mehrmals auf eine Property zugreifst, kostet dich das Zeit beim Prozessor, aber du sparst Speicher.

Wenn du das ganze in einen String auslagerst, vice versa.

Ich denke, dass sich das Auslagern in einen String eher rentieren würde.

SirThornberry 4. Jan 2006 22:32

Re: Property in Variable auslagern
 
nein, es ist nicht egal. TEdit, TMemo etc. kapseln windows komponente. Wenn du Edit.Text abfragst wird intern ein wm_gettext genutzt um einen PChar zurück zu bekommen auf die Caption. Und der PChar wird dann auf einen String kopiert und zurück gegeben. Wenn du also 5 mal "Edit.Text" aufrufst wrid 5 mal der Inhalt des PChar auf einen String kopiert was natürlich performance in Anspruch nimmt. Es gibt natürlich auch properties die einfach auf eine private/protected variable zugreifen, bei sowas ist es egal. Aber meist ist es effektiver wenn das Property einmal abruft und auf eine Variable zuweist.

@3_of_8: Warum wird da speicher gespaart. Beim abrufen des property wird der Rückgabewert auch in den speicher kopiert damit er an andere Funktionen weitergegeben werden etc. Wenn also der Rückgabewert auf eine Variable zugewiesen wird und dann mit der Variablen weitergeabeitet wird verbraucht das nicht wirklich mehr speicher.

[edit=Christian Seehase]Beiträge zusammengefasst. Mfg, Christian Seehase[/edit]

faux 4. Jan 2006 22:47

Re: Property in Variable auslagern
 
Okay, gut zu Wissen. ;)
Danke für die Antwort.

Und wie sieht das in C# aus? Ich schätze mal, da wird nicht viel Unterschied sein.

Grüße
Faux

SirThornberry 4. Jan 2006 22:50

Re: Property in Variable auslagern
 
dies ist so gut wie immer der Fall wenn hinter einem Property eine Funktion ist. Den die Funktion wird somit mehrmals aufgerufen und somit wird auch das innerhalb der Funktion mehrmals aufgerufen

faux 4. Jan 2006 22:55

Re: Property in Variable auslagern
 
Zitat:

Zitat von SirThornberry
dies ist so gut wie immer der Fall wenn hinter einem Property eine Funktion ist. Den die Funktion wird somit mehrmals aufgerufen und somit wird auch das innerhalb der Funktion mehrmals aufgerufen

Klar. Mein Fehler... :oops:
Ich sollte schlafen gehen... *g*

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:57 Uhr.

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