AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Property in Variable auslagern

Ein Thema von faux · begonnen am 4. Jan 2006 · letzter Beitrag vom 4. Jan 2006
Antwort Antwort
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Property in Variable auslagern

  Alt 4. Jan 2006, 23:28
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Property in Variable auslagern

  Alt 4. Jan 2006, 23:31
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Property in Variable auslagern

  Alt 4. Jan 2006, 23:32
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]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Property in Variable auslagern

  Alt 4. Jan 2006, 23:47
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Property in Variable auslagern

  Alt 4. Jan 2006, 23:50
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Property in Variable auslagern

  Alt 4. Jan 2006, 23:55
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...
Ich sollte schlafen gehen... *g*

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 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