La gestione della memoria completamente automatizzata aumenta notevolmente la produttività e l'integrità, ma la normale implementazione (GC) ha un problema critico. È non deterministico e non controllabile. Ciò causa molti problemi, come il carico della CPU, che è fondamentale per le applicazioni in tempo reale. Alcuni tipi di ottimizzazioni (GC incrementale / concorrente) possono ridurre questi problemi, ma non sono deterministici e non possono eliminare completamente il problema.
Ho pensato che GC non è mai stato in grado di risolvere questo problema, ma recentemente ho appreso e capito che l'operazione GC non ha bisogno di essere completamente nascosta. GC può anche essere deterministico e privo di burst della CPU esponendo alcuni controlli di comportamento correttamente progettati.
Penso che (RC + il rilevamento del ciclo invocato manualmente) possa farlo. Ma questo non sembra efficiente. Esiste un approccio migliore per un'implementazione della gestione della memoria completamente automatica, deterministica e controllabile? Oppure posso ottenere qualche link per implementazioni di esempio?
Modifica
Ho aggiunto queste righe per rendere più chiara la mia domanda.
-
deterministico e controllabile in questo contesto significa che l'utente può tracciare ed eseguire il codice alla creazione dell'oggetto e distruggere esplicitamente. E controlla anche la quantità e il tempo di caricamento dell'operazione di gestione della memoria.
-
completamente automatico significa che assegna e cancella la memoria come GC senza ulteriore preoccupazione.