Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#26

AW: RTL Performance D7 vs XE7

  Alt 12. Sep 2014, 11:37
auch meine ich damals mal gehört zu haben das der Borland MM beim erweitern von Listen schneller sein sollte, weil er imm gleich 4 einträge allociert der FastMM immer einen einzigen. Trifft dies noch immer so zu?
Das ist nicht Sache des Speichermanagers, sondern der Liste. Und die macht das immernoch so, wie zu Delphi 1.0 Zeiten. Der FastMM (der in der BorlndMM.dll seit Delphi 2006 sitzt) reserviert beim Vergrößern (Realloc) ein wenig mehr Platz, so dass ein weiteres Vergrößern ohne Anfordern von mehr Speicher erfolgen kann, was das ganze stark beschleunigt und bedingt auch die Speicherfragmentierung etwas verringert.


Naja, für Pointer eine generische Liste zu benutzen ist auch ziemlich witzlos.
Ich hätte auch Integer/NativeInt nehmen können und es würde für TList<Integer> genauso schlecht aussehen. Ich wollte mir nur die Typecasts von Pointer->Integer bei TList sparen und zwei gleiche Listentypen vergleichen.
Und zum TList<TObject>. Wer überschreibt in Delphi denn TObject.Equals? Das führt nur zu seltsamen Effekten, da das es zu spät kam und jeder davon aus geht, dass ein List<TObject>.IndexOf(MyObject) den Index von MyObject liefert und nicht von einem Objekt, dass zufälligerweise die selben Daten hat.
  Mit Zitat antworten Zitat