Dear people,
I am working on an interpreter that now piggybacks on c++ for garbage collection (through std::shared_ptr). I am considering moving over to mimalloc and a concurrent reference counting garbage collector. Unfortunately, initial experiments fail on Fedora/gcc intel.
Why doesn't the following work?
[marco@woof ~]$ time env MIMALLOC_VERBOSE=1 LD_PRELOAD=/usr/lib64/libmimalloc.so.2.0 egel -e "import \"prelude.eg\";; using List;; foldl (+) 0 (from_to 0 1000000)"
mimalloc: option 'show_errors': 0
mimalloc: option 'show_stats': 0
mimalloc: option 'eager_commit': 1
mimalloc: option 'eager_region_commit': 1
mimalloc: option 'reset_decommits': 0
mimalloc: option 'large_os_pages': 0
mimalloc: option 'reserve_huge_os_pages': 0
mimalloc: option 'reserve_huge_os_pages_at': -1
mimalloc: option 'reserve_os_memory': 0
mimalloc: option 'segment_cache': 0
mimalloc: option 'page_reset': 0
mimalloc: option 'abandoned_page_reset': 0
mimalloc: option 'segment_reset': 0
mimalloc: option 'eager_commit_delay': 1
mimalloc: option 'allow_decommit': 1
mimalloc: option 'reset_delay': 25
mimalloc: option 'segment_decommit_delay': 500
mimalloc: option 'use_numa_nodes': 0
mimalloc: option 'limit_os_alloc': 0
mimalloc: option 'os_tag': 100
mimalloc: option 'max_errors': 16
mimalloc: option 'max_warnings': 16
mimalloc: process init: 0x7f70f40a5740
mimalloc: secure level: 0
500000500000
heap stats: peak total freed current unit count
reserved: 0 0 0 0 ok
committed: 0 0 0 0 ok
reset: 0 0 0 0 ok
touched: 0 0 0 0 ok
segments: 0 0 0 0 ok
-abandoned: 0 0 0 0 ok
-cached: 0 0 0 0 ok
pages: 0 0 0 0 ok
-abandoned: 0 0 0 0 ok
-extended: 0
-noretire: 0
mmaps: 0
commits: 0
threads: 0 0 0 0 ok
searches: 0.0 avg
mimalloc: using 1 numa regions
numa nodes: 1
elapsed: 2.143 s
process: user: 2.081 s, system: 0.061 s, faults: 0, rss: 236.7 MiB
mimalloc: process done: 0x7f70f40a5740
real 0m2.150s
user 0m2.082s
sys 0m0.066s
[marco@woof ~]$
Dear people,
I am working on an interpreter that now piggybacks on c++ for garbage collection (through std::shared_ptr). I am considering moving over to mimalloc and a concurrent reference counting garbage collector. Unfortunately, initial experiments fail on Fedora/gcc intel.
Why doesn't the following work?