Sto usando C # per diversi anni, mai realmente volendo (fino a quando ho davvero bisogno di farlo) per scavare nella sua meccanica "profonda" e per intervenire nel lavoro di GC, nel codice compilato da IL e così via.
Il mio punto è che se hai mai bisogno di chiamare GC anche manualmente (parlando in generale - per "aiutare" i costruttori e le strutture di C # o di .NET a fare il loro lavoro), allora è 99% la probabilità che tu faccia qualcosa di sbagliato rispetto all'1% che hai effettivamente bisogno di questo.
Questa è una sorta di capriccio dei programmatori della "vecchia scuola" - piuttosto che studiare le librerie e le strutture esistenti, inventeranno una bicicletta ancora e ancora, ostentando la loro "profonda" conoscenza, mettendo ogni "schema" di cui hanno sentito parlare e producendo un "capolavoro" che nessuno sarà in grado di comprendere (anche creatore egli stesso diverse falene più tardi).
Tuttavia, torna all'argomento. Le generazioni di GC sono una delle domande molto popolari che mi sono state rivolte da alcune risorse umane, inoltre ho letto alcuni articoli di "preparazione per l'intervista" relativi a questo argomento, ma non ho mai visto nulla su come effettivamente puoi gestirli da solo. Suppongo, non puoi? Ho fatto una ricerca di superficie e ho trovato solo il tipo di "comprensione di GC". Ad esempio, puoi sapere come funziona realmente il compilatore, ma hai intenzione di "aiutarlo" a compilare il tuo programma? E se non lo farai, allora forse meglio usare il tuo tempo per studiare alcuni tipi di ASP.NET vNext?
Quindi, le generazioni di GC hanno uno scopo (per un programmatore di applicazioni) diverso dalla risposta alle "difficili" domande delle risorse umane?