mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 03:20:18 +00:00
...
This commit is contained in:
parent
d3c33c2d1c
commit
e1d75a0d85
14
src/gc.cpp
14
src/gc.cpp
@ -22,7 +22,14 @@ namespace pkpy{
|
|||||||
for(PyObject* obj: _no_gc) obj->gc.marked = false;
|
for(PyObject* obj: _no_gc) obj->gc.marked = false;
|
||||||
|
|
||||||
int freed = gen.size() - alive.size();
|
int freed = gen.size() - alive.size();
|
||||||
// std::cout << "GC: " << alive.size() << "/" << gen.size() << " (" << freed << " freed)" << std::endl;
|
|
||||||
|
#if PK_DEBUG_GC_STATS
|
||||||
|
for(auto& [type, count]: deleted){
|
||||||
|
std::cout << "GC: " << obj_type_name(vm, type).sv() << "=" << count << std::endl;
|
||||||
|
}
|
||||||
|
std::cout << "GC: " << alive.size() << "/" << gen.size() << " (" << freed << " freed)" << std::endl;
|
||||||
|
deleted.clear();
|
||||||
|
#endif
|
||||||
gen.clear();
|
gen.clear();
|
||||||
gen.swap(alive);
|
gen.swap(alive);
|
||||||
// clean up pools
|
// clean up pools
|
||||||
@ -50,11 +57,6 @@ namespace pkpy{
|
|||||||
ManagedHeap::~ManagedHeap(){
|
ManagedHeap::~ManagedHeap(){
|
||||||
for(PyObject* obj: _no_gc) { obj->~PyObject(); pool64_dealloc(obj); }
|
for(PyObject* obj: _no_gc) { obj->~PyObject(); pool64_dealloc(obj); }
|
||||||
for(PyObject* obj: gen) { obj->~PyObject(); pool64_dealloc(obj); }
|
for(PyObject* obj: gen) { obj->~PyObject(); pool64_dealloc(obj); }
|
||||||
#if PK_DEBUG_GC_STATS
|
|
||||||
for(auto& [type, count]: deleted){
|
|
||||||
std::cout << "GC: " << obj_type_name(vm, type).sv() << "=" << count << std::endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user