Project

General

Profile

Actions

Feature #6812

closed

Refactor gc.c

Added by authorNari (Narihiro Nakamura) over 11 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
[ruby-dev:46012]

Description

nariです。

gc.cがごちゃごちゃしてきたので見通しがよくなるようにvm_xx.cみたいにファ
イルを分割しました。この修正ではCやRubyレベルのAPIの変更はありません。

2ヶ月前の開発会議で議論していた件です。

http://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20120601

変更内容は以下のURLで閲覧できます。
https://github.com/authorNari/ruby/commit/11e4bffd9e3

パッチは以下のとおりです。
https://github.com/authorNari/ruby/commit/11e4bffd9e3.patch

改善案や意見等ありましたら教えていただけると嬉しいです。

= パッチの簡単な解説

以下のような階層で分割しています。

  • gc.c
    +-- gc_alloc.[ch]
    +-- gc_ms.[ch]
    +-- gc_ms_heap.c
    +-- gc_ms_profiler.c

それぞれのファイルの簡単な説明は以下のとおりです。

  • gc_alloc.h
    メモリアロケータで実装すべき関数が定義される
    (ruby_xmallocなど)

  • gc_ms.h
    GCに実装すべき関数などが定義される
    (gc_markなど)

  • gc_alloc.c
    メモリアロケータ周りのコードを記述

  • gc_ms.c
    GCアルゴリズム周りのコードを記述

  • gc_ms_heap.c
    GC対象のヒープに依存するコードを記述

  • gc_ms_profiler.c
    GCのプロファイラ周りのコードを記述する場所

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0