Mall - access malloc tuning/reporting functions + glibc extras
This library provides access to the SysV mallinfo(3) and mallopt(3) functions as well as (optionally) several glibc-specific malloc_*() functions. Mall.opt, Mall.trim and Mall.xml are the most interesting.
Constants and functionality are defined at build time, so changing your malloc implementation may require rebuilding and reinstalling this library.
Quick Start
> require 'mall'
> irb(main):007:0> Mall::info
=> {:arena=>12099584, :ordblks=>139, :smblks=>30, :hblks=>3, :hblkhd=>1650688, :usmblks=>0, :fsmblks=>1536, :uordblks=>12068400, :fordblks=>31184, :keepcost=>3616}
Where:
struct mallinfo2 {
size_t arena; /* Non-mmapped space allocated (bytes) */
size_t ordblks; /* Number of free chunks */
size_t smblks; /* Number of free fastbin blocks */
size_t hblks; /* Number of mmapped regions */
size_t hblkhd; /* Space allocated in mmapped regions (bytes) */
size_t usmblks; /* See below */
size_t fsmblks; /* Space in freed fastbin blocks (bytes) */
size_t uordblks; /* Total allocated space (bytes) */
size_t fordblks; /* Total free space (bytes) */
size_t keepcost; /* Top-most, releasable space (bytes) */
};
See ‘man 3 mallinfo2` (man7.org/linux/man-pages/man3/mallinfo.3.html).
irb(main):008:0> Mall::dump_stats
Arena 0:
system bytes = 12099584
in use bytes = 12065808
Total (incl. mmap):
system bytes = 13750272
in use bytes = 13716496
max mmap regions = 4
max mmap bytes = 1851392
=> nil
Requirements
-
A malloc implementation supporting mallinfo(3) and/or mallopt(3), the ptmalloc-family of allocators used by glibc is recommended and the only tested implementation.
Build
gem install rake-compiler
rake build
Install
git clone https://github.com/sitano/mall.git && cd mall && git co ivan
gem build mall.gemspec
gem install mall-1.0.2.gem
or add
gem 'mall', git: 'https://github.com/sitano/mall.git', branch: 'ivan'
and then:
$ bundle install
SOURCE:
The original source code is available via git:
git://yhbt.net/mall.git
http://yhbt.net/mall.git
cgit repository viewer:
-
yhbt.net/mall.git (cgit)
Contact
All feedback (bug reports, user/development dicussion, patches, pull requests) go to the mailing list: [email protected]