论坛首页 综合技术论坛

Erlang 进程堆内存增长算法

浏览 2913 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-27  
 /*
     * Heap sizes start growing in a Fibonacci sequence.
     *
     * Fib growth is not really ok for really large heaps, for
     * example is fib(35) == 14meg, whereas fib(36) == 24meg;
     * we really don't want that growth when the heaps are that big.
     */
erlang的process heap堆大小默认是233 等于fib(11), 用fib算法的目的是后续的heap增长会比较慢 避免内存的浪费。

大多数的系统都是以上为2倍数增长的。有人对std:string做过统计分析,最后得出一个结论是 1.5 是比较合适的数字。

erlang用这个算法个人感觉体现这个系统的成熟。
   发表时间:2007-10-08  
认同。C++的boost::pool<>以2倍的增长速度,我觉得有点费了,看了这个很受教。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics