-
-
Notifications
You must be signed in to change notification settings - Fork 17
add Internals::gc() #336
Comments
See you removed the label, I was watching closely. Is Perl to brittle to get this change in? Got me looking at cperl though. Thought you were going to solve the world's problems single handedly. Be interested in hearing a report-back on the StackOverflow on the progress and the difficulties. |
I'll write a blog post and update the SO answer. Still trying, but no success with RSS or VM sizeonly with Massif. Even if aggressively freeing 4K pages |
If anyone can do it and get bragging rights on Perl core, it's you. No idea what's going on, but you'll have a steep claim if you can use a function in POSIX.pm and not permanently grow perl by an order of megabytes RSS. =) That'd be a super tangible one for cperl. |
The POSIX import problem is known for ages. Leon works on POSIX2 I guess, which doesn't import every existing function. Nobody should Regarding automatically calling |
Yea, I found |
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
free empty SV arenas and empty body roots. Note that is usually doesn't reclaim system memory, very often it even increases memory usage. opslab arenas should be deleted by cv_undef() already. See GH #336
Scan the arenas and free empty ones.
The heads (PL_arenaroot), the bodies (PL_body_arenas and the PL_body_roots[type] free-list),
The opslab's (CvSTART of all CVs) and ops are correctly freed via cv_undef, see -DS.
Check on del_SV if an arena is free, and free its memory then.
Add a
malloc_trim(0)
call to actually forcefree()
to return memory pages to return to the OS, so that the rss is improved. glibc only.Furthermore check the implementation of the free-list (body_roots), which seems to support only one (just a ptr, not a linked list as the adesc->arena or HE chain), and check for a free arena on del_SV.
Similarily the obslab impl. also has an OP overhead of 2 ptrs (next and slab owner), whilst it could be easier implemented as sized arenas as with the body roots.
The SV arenas should really be simplified to allocate into one sized arena slot, (no seperation of head and body) but this would make upgrades with references harder, and we don't have small forwards.
For now see
feature/gh336-gc
, destruction became unstable with it.The text was updated successfully, but these errors were encountered: