原创作者: mryufeng   阅读:1454次   评论:0条   更新时间:2011-06-01    

翻erlang的代码发现erlang对memory的管理非常重视 内置了多种内存allocator:

  • B: binary_alloc
  • D: std_alloc
  • E: ets_alloc
  • F: fix_alloc
  • H: eheap_alloc
  • L: ll_alloc
  • M: mseg_alloc
  • S: sl_alloc
  • T: temp_alloc
  • Y: sys_alloc

多种分配策略:
    1。 Best fit
    2 。 Address order best fit
    3. Good fit
   4. A fit

还要一个erl_mtrace 模块专门收集erts允许期间的内存使用情况 然后通过tcp socket发送到 emem 这个程序中打印到 tty让人观察系统的情况。

emem在lib/tools/目录下 make install的时候默认没有安装。

启动 ./lib/tools/bin/i686-pc-linux-gnu/emem -p 1234

然后用erl -sname foo  +Mit ip:1234就可以观察erlang的内存运作了.

注意erts的文档里面写:

+Mit X
<!----> Reserved for future use. Do not use this flag.

是属于未公开的 。

评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics