AGB  ·  Datenschutz  ·  Impressum  







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

Effektivität von Records und Objekten

Ein Thema von Gargamel · begonnen am 28. Dez 2011 · letzter Beitrag vom 29. Dez 2011
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.825 Beiträge
 
Delphi 12 Athens
 
#5

AW: Effektivität von Records und Objekten

  Alt 29. Dez 2011, 08:50
Du solltest daran denken, das bei einem dynamischen Array beim Vergrößern im Zweifelsfall alle bisherigen Elemente kopiert werden müssen.
In neueren "Delphis" ist FastMM schon an Board, das Optimiert dabei schon etwas.

Statt einem dynamischen Array bietet sich auch eine generische TList an, welche zwar wieder etwas "langsamer" ist, aber dafür noch ein paar nette Extras bietet.


Ich verwende Arrays vorallem dann, wenn ich mich nicht im die Erstellung/Speicherverwaltung der enthaltenen "Objekte" kümmern will.

Wenn man die Liste öfters verändert und vorallem mitten Drin, bzw. am Anfang Records einfügt oder löscht, dann wird dieser Vorgang immer langsamer, je größer die Records werden > mehr Daten.
Bei Objekten sind es dagegen immer nur SizeOf(TObjekt) Bytes pro zu verschiebendem Eintrag.




PS: Bei einem Array of Record, bzw. bei einer TList<Record>, liegen alle Record-Daten zusammen in einem Speicherbereich.
Bei einer Objektliste liegen diese Daten/Objekte überall verstreut im RAM und verbrauchen zusätzlichen Verwaltungsoverhead im Speichermanager.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Dez 2011 um 08:53 Uhr)
  Mit Zitat antworten Zitat
 


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 14:35 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-2025 by Thomas Breitkreuz