
Memory Management & GC
Garbage Collection, generazioni, finalizzazione, IDisposable, using statement, memory leak, profiling
1Cos'è il Garbage Collector (GC) in .NET?
Cos'è il Garbage Collector (GC) in .NET?
Risposta
Il Garbage Collector è un meccanismo automatico di gestione della memoria che libera gli oggetti non utilizzati sul managed heap. Viene eseguito automaticamente in background per prevenire i memory leak, a differenza di C/C++ dove la memoria deve essere liberata manualmente. Il GC analizza i riferimenti agli oggetti e raccoglie quelli che non sono più accessibili dalle roots dell'applicazione.
2Quali sono le tre generazioni del Garbage Collector in .NET?
Quali sono le tre generazioni del Garbage Collector in .NET?
Risposta
Il GC di .NET utilizza tre generazioni: Gen0 (oggetti giovani e di breve durata, raccolti frequentemente), Gen1 (oggetti di durata media, zona cuscinetto tra Gen0 e Gen2) e Gen2 (oggetti di lunga durata, raccolti raramente perché costoso). Questo sistema generazionale ottimizza le prestazioni raccogliendo prima gli oggetti effimeri (Gen0), che rappresentano l'80-90% degli oggetti, evitando di scansionare frequentemente gli oggetti persistenti (Gen2).
3Cos'è il Large Object Heap (LOH) in .NET?
Cos'è il Large Object Heap (LOH) in .NET?
Risposta
Il Large Object Heap è uno spazio di memoria separato per oggetti di 85 KB o più, che appartiene logicamente alla Gen2. A differenza dell'heap standard, che viene compattato regolarmente, il LOH NON viene compattato per impostazione predefinita per evitare il costo di copiare oggetti di grandi dimensioni. Questo può causare frammentazione della memoria. Dal .NET 4.5.1, la compattazione del LOH può essere abilitata manualmente con GCSettings.LargeObjectHeapCompactionMode.
Qual è il ruolo del pattern IDisposable in .NET?
Cosa fa l'istruzione using in C#?
+19 domande da colloquio
Altri argomenti di colloquio .NET
Fondamenti di C#
LINQ & Delegates
Fondamenti del linguaggio C#
Fondamenti di ASP.NET Core
Ciclo di vita delle richieste in ASP.NET Core
Configuration & Settings
Ciclo di vita dell'applicazione
Dependency Injection
Entity Framework Core
Minimal APIs
Sviluppo di Web API
Async in ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serializzazione JSON
Entity Framework Core avanzato
Funzionalità avanzate di C#
Clean Architecture
Logging, Monitoring & Observability
Test unitari & xUnit
Test di integrazione
Docker & Containerization
Gestione dei pacchetti NuGet
Programmazione reattiva
Async/await & Pattern
.NET Design Patterns
Ottimizzazione delle prestazioni
Sicurezza e Best Practices
SignalR e tempo reale
Architettura a Microservizi
Padroneggia .NET per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis