Exemple #1
0
void MemoryManager::collect() {
  if (!RuntimeOption::EvalEnableGC || empty()) return;
  Marker mkr;
  mkr.init();
  mkr.trace();
  mkr.sweep();
}
Exemple #2
0
void MemoryManager::traceHeap() {
  if (!RuntimeOption::EvalTraceHeap) return;
  if (empty()) return;
  Marker mkr;
  mkr.init();
  mkr.trace();
  mkr.sweep();
}
Exemple #3
0
void collectImpl(const char* phase) {
    VMRegAnchor _;
    if (t_eager_gc && RuntimeOption::EvalFilterGCPoints) {
        t_eager_gc = false;
        auto pc = vmpc();
        if (t_surprise_filter.test(pc)) return;
        t_surprise_filter.insert(pc);
        TRACE(2, "eager gc %s at %p\n", phase, pc);
    } else {
        TRACE(2, "normal gc %s at %p\n", phase, vmpc());
    }
    Marker mkr;
    mkr.init();
    mkr.trace();
    mkr.sweep();
}