mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:38:11 +00:00
![]() Previously each malloc size class would keep around a limited number of unused blocks which were marked with MADV_SET_VOLATILE which could then be reinitialized when additional blocks were needed. This changes malloc() so that it also keeps around a number of blocks without marking them with MADV_SET_VOLATILE. I termed these "hot" blocks whereas blocks which were marked as MADV_SET_VOLATILE are called "cold" blocks because they're more expensive to reinitialize. In the worst case this could increase memory usage per process by 1MB when a program requests a bunch of memory and frees all of it. Also, in order to make more efficient use of these unused blocks they're now shared between size classes. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Emulator.cpp | ||
Emulator.h | ||
Emulator_syscalls.cpp | ||
main.cpp | ||
MallocTracer.cpp | ||
MallocTracer.h | ||
MmapRegion.cpp | ||
MmapRegion.h | ||
Range.cpp | ||
Range.h | ||
RangeAllocator.cpp | ||
RangeAllocator.h | ||
Region.cpp | ||
Region.h | ||
Report.h | ||
SimpleRegion.cpp | ||
SimpleRegion.h | ||
SoftCPU.cpp | ||
SoftCPU.h | ||
SoftMMU.cpp | ||
SoftMMU.h | ||
ValueWithShadow.h |