Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Statisches array of Single (glFloat) - Exception (https://www.delphipraxis.net/164750-statisches-array-single-glfloat-exception.html)

Flips 29. Nov 2011 10:17

AW: Statisches array of Single (glFloat) - Exception
 
Naja wenn ich Probleme mit einem statischen Array hab und als Lösung ein dynamisches Angeboten bekomme dann macht das Sinn.

Aber ok, bei der anderen Sache habe ich tatsächlich meinen kleinen Zusatz in meinem Post vergessen.

Medium 29. Nov 2011 10:31

AW: Statisches array of Single (glFloat) - Exception
 
Der Zugriff auf dynamische und statische Arrays dürfte prinzipiell gleich schnell sein. Ich kann mir vorstellen, dass die Aussage auf Basis eines Apfel-Birnen-Vergleichs gemacht wurde, da ggf. ein statisches Array auf dem Stack eine Spur flotter sein könnte, aber vergleicht man beide auf dem Heap, sollte es mich schon wundern, wenn es da messbare Unterschiede gäbe. (Ich zweifel sogar gerade daran, dass es auf dem Stack auch einen machen würde, kanns aber grad nicht testen.)
Das einzige, was bei dynamischen Arrays Kosten macht, ist das Initialisieren und vor allem das nachträgliche, häufige Ändern der Größe.

Deine Frage "Hm das heißt wenn ich das Array als privates Feld meiner Klasse, in der ich es benutze, deklariere (gekapselt werden muss es nicht, brauch es nur innerhalb der Klasse), dann wird es ebenfalls auf dem Heap abgelegt und ich brauch mich quasi um nichts mehr zu kümmern?" wäre mit ja zu beantworten. In gleicher Weise wäre auch ein dynamisches Array "hübscher" als Klassenfeld, zumindest wenn es in mehr als dieser einen Methode, und nicht nur temporär benutzt wird.

Bjoerk 29. Nov 2011 12:34

AW: Statisches array of Single (glFloat) - Exception
 
Hierzu hätte ich eine Frage: Wenn ein statisches Array im interface Teil der Unit (nicht im
implementation Teil) deklariert wird, ist es dann auf dem Heap?

DeddyH 29. Nov 2011 13:00

AW: Statisches array of Single (glFloat) - Exception
 
Ob im Interface- oder Implementation-Abschnitt ist in dem Zusammenhang schnurz, es landet auf dem Heap.

Medium 29. Nov 2011 13:56

AW: Statisches array of Single (glFloat) - Exception
 
Sagen wir es anders: Alles, was keine lokale Methodenvariable oder By-Value-Parameter ist landet auf dem Heap.
(Der Umkehrschluss ist dagegen nicht so ohne weiteres zulässig.)

DeddyH 29. Nov 2011 14:29

AW: Statisches array of Single (glFloat) - Exception
 
Jo, elegant ausgedrückt :thumb:

Flips 29. Nov 2011 15:46

AW: Statisches array of Single (glFloat) - Exception
 
Gut, im Endeffekt lege ich mich dann auf ein dynamisches Array fest, welches ich als Klassenvariable deklariere. Da ich nur einmal die Länge festlege sollte die Performance darunter nicht leiden und ich bin auf dem Heap und somit auf der sicheren Seite.

Also Danke an alle!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Seite 2 von 2     12   

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