Статистичні та динамічні масиви
Статичні масиви функції Delphi насправді є просто покажчиками на безперервну область пам’яті, яка була виділена для зберігання потрібної кількості даних. Компілятор виконує математичні операції, щоб перетворити індекс вказівник на один елемент в масиві, а динамічні, з іншого боку, додають рівень побічності.
Динамічний масив – це запис, що містить інформацію про нього, включаючи розмір, кількість елементів і покажчик на статичний. Коли викликається SetLength, відбувається кілька процесів:
Якщо в поточній позиції внутрішнього статичного масиву достатньо місця для перерозподілу, і існує одна змінна посилається на масив, відбувається тільки крок № 1. Все це реалізується кожного разу, коли змінюють його довжину.
Якщо є інші змінні, які посилаються на той же масив, старий статичний не буде видалений. Всякий раз, коли змінюється розмір динамічного масиву, він буде скопійований, що означає перебір в пам’яті. Час, який потрібен, пропорційно розміру, наприклад, копіювання з 20 елементів займає більше часу, ніж з 10.