gc-roots

    7熱度

    2回答

    我正在編寫一個相當標準的堆棧機器的編譯器。現在我想添加一個垃圾收集器。我可以看到我可以生成某種「堆棧映射」來知道哪些變量是每個激活記錄中的gc根。但是,我不知道如何處理在執行過程中壓入堆棧的中間值。我正在編譯的語言與Pascal相似,所以我不需要,也不想使用標記來識別來自其​​他數據類型的指針。 我希望任何提示/如何 在任何時間點查找堆棧GC根指針(即,如何識別哪些已在堆棧已經被推的中間值是GC根

    2熱度

    2回答

    標記清除垃圾回收器的第一個階段是標記(查找)堆中的所有活動對象。要做到這一點,必須有一個起點或根,從所有標記開始的地方開始。 GC如何識別這些根源?

    8熱度

    3回答

    我有一個關於GC根的問題。我讀到GC的根源是「Live thread」。那是什麼意思? 我總是有印象,每個線程都有它自己的堆棧,堆棧的局部變量是線程的GC根,現在我很困惑。線程表示具有哪些其他類型的對象引用,它們不在幀堆棧或本地堆棧上? 其他問題是年輕一代收集使用GC根,還是隻爲主要算法? 感謝 更新: 好難過,所以要保持它的簡單:我讀過這篇短文:yourkit.com/docs/java/hel

    4熱度

    2回答

    注視Timer documentation我碰到下面的示例中跑了此評論: // Normally, the timer is declared at the class level, // so that it stays in scope as long as it is needed. // If the timer is declared in a long-runnin