Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Typisierten bzw. Untypisierten Variablen

  Alt 4. Okt 2009, 08:26
Bezüglich TList, auch wenn die Gefahr besteht, das das Thema abdriftet:
Die TList-Klasse wurde nach dem KISS-Prinzip erstellt. Sie ist schnell, kompakt und leicht verständlich. Wer allen Ernstes den Speicherverbrauch als Argument angibt, kennt die TList-Klasse nicht. Die Aussage ist schlicht und ergreifend falsch:

Eine einfach verkettete Liste benötigt pro Element 8 Bytes Speicherplatz (4 Bytes Nutzinformation + 4 Bytes Vorwärtsverkettung), eine doppelt verkettete Liste sogar 12 Bytes. Das ist die doppelte bzw. dreifache Menge des wirklich Nötigen.

Und eine TList? Die Nutzinformation wird in einem Array-Element gespeichert, der Verbrauch liegt also bei 4 Bytes pro Element. Dazu kommt noch der ungenutzte Bereich des Arrays am Ende: Wenn die Liste wachsen muss, tut sie das nicht in Einerschritten, sondern in 4er, 16er bzw. N/4-Schritten (bei mehr als 64 Elementen). Der maximale Overhead pro Element liegt also bei 25%.

Eine TList ist also im Vergleich hinsichtlich des Speicherverbrauches wesentlich kompakter als eine verkettete Liste.

@Medium: Dein Ansatz mit einem Hilfsarray... Was wäre das? Eine TList?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat