[ruby-dev:39636] [Feature #2328] malloc_limit の肥大化を防ぎたい

View: New views
2 Messages — Rating Filter:   Alert me  

[ruby-dev:39636] [Feature #2328] malloc_limit の肥大化を防ぎたい

by Bryan McLellan-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

チケット #2328 が更新されました。 (by _ wanabe)

ファイル test.rb 追加
ファイル log.txt 追加

> 私は思いつきません。ベンチマーク(こんなケースでこんなに改善
> とか、こんなケースでは悪くならないとか)があると採用しやすい
> と思います。

ありがとうございます。改善される例とその実行結果を添付しました。
悪くならないケースはそれらしいものが思いつきませんでした。すみません。

malloc/realloc の後に、1MB の文字列を 2000 個生成しています。
リネームの都合上 miniruby ですが、恐らく ruby でもあまり変わらないと思います。
-v は、いずれも ruby 1.9.2dev (2009-11-02 trunk 25630) [i386-mingw32] です。

まとめると、以下のような結果になりました。
メモリの潤沢な環境では、数値をいじらないと差が出ないかもしれません。

通常の miniruby, 大量 realloc 後: 277 秒(GC:  12 回)
パッチ 1 適用時, 大量 realloc 後:  10 秒(GC: 286 回)
パッチ 2 適用時, 大量 realloc 後: 285 秒(GC:  13 回)
両パッチ 適用時, 大量 realloc 後:  10 秒(GC: 286 回)

通常の miniruby, 大量 malloc  後: 141 秒(GC:  30 回)
パッチ 1 適用時, 大量 malloc  後: 155 秒(GC:  30 回)
パッチ 2 適用時, 大量 malloc  後:  27 秒(GC:  66 回)
両パッチ 適用時, 大量 malloc  後:  29 秒(GC:  66 回)

なお手元では、両パッチ適用後 make test-all が 3722 秒 から2435 秒になりました。
(ブロックしてしまうので test_io.rb の test_dup_many はスキップしていますが)
----------------------------------------
http://redmine.ruby-lang.org/issues/show/2328

----------------------------------------
http://redmine.ruby-lang.org


[ruby-dev:39640] Re: [Feature #2328] malloc_limit の肥大化を防ぎたい

by Yukihiro Matsumoto :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

まつもと ゆきひろです

In message "Re: [ruby-dev:39636] [Feature #2328] malloc_limit の肥大化を防ぎたい"
    on Wed, 4 Nov 2009 21:01:41 +0900, _ wanabe <redmine@...> writes:

|> 私は思いつきません。ベンチマーク(こんなケースでこんなに改善
|> とか、こんなケースでは悪くならないとか)があると採用しやすい
|> と思います。
|
|ありがとうございます。改善される例とその実行結果を添付しました。
|悪くならないケースはそれらしいものが思いつきませんでした。すみません。

<略>

ありがとうございます。とても説得力のあるベンチマークだと思い
ました。人工的なテストだけでなく、test-allも性能が改善してい
る点が好印象です。

コミットしていただけませんか?