1) Per consentire l'ereditarietà e il polimorfismo, le classi hanno un sovraccarico. I record non li consentono e in alcune situazioni potrebbe essere un po 'più veloce e semplice da usare. A differenza delle classi, che vengono sempre allocate nell'heap e gestite tramite riferimenti, i record possono essere allocati nello stack anche, acceduti direttamente e assegnati tra loro senza richiedere di chiamare un metodo "Assegna". Anche i record sono utili per accedere ai blocchi di memoria con una determinata struttura, poiché il loro layout di memoria è esattamente come lo definisci. Un layout di memoria di istanza di classe è controllato dal compilatore e ha ulteriori dati per far funzionare gli oggetti (cioè il puntatore alla Tabella dei metodi virtuale).
2) A meno che non si assegnino i record dinamicamente, utilizzando New() o GetMem(), la memoria del record viene gestita dal compilatore come ordinali, float o array statici: la memoria delle variabili globali viene allocata all'avvio e rilasciata al termine del programma, e le variabili locali sono allocate nello stack entrando in una funzione/procedura/metodo e rilasciate in uscita. L'allocazione/rilascio della memoria nello stack è più veloce perché non richiede chiamate al gestore di memoria, sono solo poche le istruzioni dell'assemblatore per modificare i registri dello stack.Ma sappi che allocare una grande struttura nello stack può causare un overflow dello stack, perché la dimensione massima dello stack è fissa e non molto grande (vedi le opzioni del linker). Se i record sono campi di una classe, vengono assegnati quando la classe viene creata e rilasciata quando la classe viene liberata.
3) Uno dei vantaggi dei generici è quello di eliminare la necessità della gestione puntatore di basso livello, ma essere consapevoli del funzionamento interno.
fonte
2009-12-10 08:52:15
Grazie Mr. Wheeler e una domanda in più: Puntatore per registrare = Classe? –
No, puntatore a record = puntatore a record. Un oggetto (istanza di classe) è diverso da un record in diversi modi. –