What Fil tracks
Fil will track memory allocated by:
- Normal Python code.
- C code using
malloc()
/calloc()
/realloc()
/posix_memalign()
. - C++ code using
new
(including viaaligned_alloc()
). - Anonymous
mmap()
s. - Fortran 90 explicitly allocated memory (tested with gcc’s
gfortran
; let me know if other compilers don’t work).
Still not supported, but planned:
mremap()
(resizing ofmmap()
).
Maybe someday:
- File-backed
mmap()
. The semantics are somewhat different than normal allocations or anonymousmmap()
, since the OS can swap it in or out from disk transparently, so supporting this will involve a different kind of resource usage and reporting. - Other forms of shared memory, need to investigate if any of them allow sufficient allocation.
- Anonymous
mmap()
s created via/dev/zero
(not common, since it’s not cross-platform, e.g. macOS doesn’t support this). memfd_create()
, a Linux-only mechanism for creating in-memory files.memalign
,valloc()
,pvalloc()
,reallocarray()
. These are all rarely used, as far as I can tell.