зеркало из https://github.com/github/ruby.git
8e7df4b7c6
Now that we've inlined the eden_heap into the size_pool, we should rename the size_pool to heap. So that Ruby contains multiple heaps, with different sized objects. The term heap as a collection of memory pages is more in memory management nomenclature, whereas size_pool was a name chosen out of necessity during the development of the Variable Width Allocation features of Ruby. The concept of size pools was introduced in order to facilitate different sized objects (other than the default 40 bytes). They wrapped the eden heap and the tomb heap, and some related state, and provided a reasonably simple way of duplicating all related concerns, to provide multiple pools that all shared the same structure but held different objects. Since then various changes have happend in Ruby's memory layout: * The concept of tomb heaps has been replaced by a global free pages list, with each page having it's slot size reconfigured at the point when it is resurrected * the eden heap has been inlined into the size pool itself, so that now the size pool directly controls the free_pages list, the sweeping page, the compaction cursor and the other state that was previously being managed by the eden heap. Now that there is no need for a heap wrapper, we should refer to the collection of pages containing Ruby objects as a heap again rather than a size pool |
||
---|---|---|
.. | ||
.vscode | ||
lldb_rb | ||
README | ||
call_fuzzer.rb | ||
call_fuzzer.sh | ||
expand_tabs.rb | ||
gdb.py | ||
lldb_cruby.py | ||
lldb_disasm.py | ||
rb_optparse.bash | ||
rb_optparse.zsh | ||
ruby-style.el | ||
test_lldb_cruby.rb | ||
yjit_perf.py |
README
README this file rb_optparse.bash bash completion script rb_optparse.zsh zsh completion script ruby-style.el Ruby's C/C++ mode style for emacs lldb_cruby.py LLDB port of debug utility test_lldb_cruby.rb test file for LLDB port .vscode example VSCode config to debug Ruby