Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Performence Array oder einzelne Integervariablen (https://www.delphipraxis.net/51132-performence-array-oder-einzelne-integervariablen.html)

Tanne 6. Aug 2005 17:26


Performence Array oder einzelne Integervariablen
 
Moin.

Es liegen 5 Variablen vor. Dabei handelt es sich um den Typ Integer.
Ist es aus Gründen der Performence besser diese Variablen in einen Array zusammen zu fassen oder einzelnt als Integervariblen zu deklarienen?

Dax 6. Aug 2005 17:28

Re: Performence Array oder einzelne Integervariablen
 
Es ist weder besser noch schlechter. Nimm einfach das, was die Lesbarkeit des Codes erhöht. ;)

BlackJack 6. Aug 2005 17:37

Re: Performence Array oder einzelne Integervariablen
 
Zitat:

Zitat von Tanne
Moin.

Es liegen 5 Variablen vor. Dabei handelt es sich um den Typ Integer.
Ist es aus Gründen der Performence besser diese Variablen in einen Array zusammen zu fassen oder einzelnt als Integervariblen zu deklarienen?

solange du nich auf die idee kommst die werte in ein sich ständig änderndes dynamisches array zu packen sollte es da keinen geschwindigkeitsunterschied geben. ;)

Oxmyx 6. Aug 2005 17:40

Re: Performence Array oder einzelne Integervariablen
 
Die gewählte Datenstruktur sollte sich aus der Programmlogik ergeben. Es macht keinen Sinn, eine Liste aus mehreren zusammenhängenden Werten in einzelne Variablen zu speichern. Umgekehrt macht es keinen Sinn, mehrere Variablen, die nichts miteinander zu tun haben, in ein Array zu speichern.

Chewie 6. Aug 2005 17:41

Re: Performence Array oder einzelne Integervariablen
 
Hängt davon ab, wie du die Werte adressiert. Folgendes dürfte den gleichen Code erzeugen:

Delphi-Quellcode:
var
 a, b, c, d, e: Integer;
begin
  a := 5;
  b := 4;
  c := 3;
  d := 2;
  e := 1;
end;
und

Delphi-Quellcode:
var
  a: Array[0..4] of Integer;
begin
  a[0] := 5;
  a[1] := 4;
  a[2] := 3;
  a[3] := 2;
  a[4] := 1;
Wohingegen eine Schleife langsamer wäre:

Delphi-Quellcode:
var
  a: Array[0..4] of Integer;
  i: Integer;
begin
  for i := Low(a) to High(a)
  begin
    a[i] := 5 - i;
  end;
Letzteres benötigt jedesmal eine Adressrechnung, ein Inkrementieren des Zählers und ein Test, ob die Schleife beendet ist.

Aber generell sollte sowas keine Rolle spielen, in den wenigsten Fällen kommt es auf die paar Takte an, die bei sowas rausgeholt werden können.

Tanne 6. Aug 2005 17:43

Re: Performence Array oder einzelne Integervariablen
 
so weit erst einmal dank
dennoch würde ich gerne wissen, warum es keinen unterschied gibt
das würde ich gerne genau verstehen

Oxmyx 6. Aug 2005 17:49

Re: Performence Array oder einzelne Integervariablen
 
Weil bei statischen Arrays, deren Elemente im Code durch einen konstanten Index aufgerufen werden, die Adresse wie bei normalen Variablen dem Compiler schon bekannt ist.

Tanne 6. Aug 2005 17:57

Re: Performence Array oder einzelne Integervariablen
 
wunderbar :-D
vielen dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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