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.