タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

mrubyに関するauthorNariのブックマーク (3)

  • RubyとGCについて - mirichiの日記

    思ったことをつらつらと支離滅裂な個人的メモ。 1.シンプルマルチスレッドGC このあいだからいじってるやつだが、とりあえず世代別GCがあるのとないので3倍も違うというのはおかしいのでまだどこかバグっているんじゃないかと思う。効率面での話なのでヒープスロットの取得・解放戦略のへんが怪しい。 単純な再帰型マーク関数を2つのスレッドで同時に動かすというのは、まあそれなりに短時間で終わるのだろうが、それはあくまでも遊んでるCPUがあるという前提であって、システム全体のスループットとしてはたぶんあまり嬉しい話ではないだろう。作るのは楽だが無駄が多い。 このシンプルな手法が通用するのは関数を再帰呼び出しするというマシンスタックを使った探索の場合のみであり、たとえばmrubyrubyのようにリストを繋いだりたどったりする方法ではリストのアクセスに排他制御が必要になって思ったような性能は出ないと思われる

    RubyとGCについて - mirichiの日記
  • マルチスレッドGC実験その後 - mirichiの日記

    動きのおかしいコードをそのままにしておくのも気持ち悪いのできちんと動くように修正してみた。64指定のao-render.rbが34秒で動くようになったので相当おかしいことになっていたのだと思う。githubにあげたコードはあれこれいじっているが、バグっていた箇所はsweepの中で、コードの削り方を失敗していた。あとは未マークがgrayは微妙なのでwhiteにしたり、objectspaceが動くようにis_deadの条件を変えたりした。 http://github.com/mirichi/mruby/tree/simpleGC この状態で動かした128指定のao-renderが4分42秒、2スレッドマークGC化したmrubyでは3分32秒となり、我が目を疑うような高速化となったわけだが、そもそも元のmrubyでの実行は1分38秒なので世代別GCの威力がすさまじい。ao-renderのGC負荷

    マルチスレッドGC実験その後 - mirichiの日記
  • mrubyでマルチスレッドGCを実験する - mirichiの日記

    githubがよくわかってないのでbranchとかがなんか変なことになっているような気がするのだが、それはさておき。 このあいだ、マルチコアを活用するマルチスレッドGCについてアイデアをひらめいたので、とりあえず手ごろなmrubyをいじって実験してみようと思ったわけだ。CRuby難しすぎるし。mrubyのGCは世代別GC+インクリメンタルGCで意外に複雑なことをしているので、世代別のあたりとインクリメンタルのあたりのコードをばっさりと削って、素朴なマーク&スウィープGCにしてみた。コードはこんな感じである。 http://github.com/mirichi/mruby/tree/simpleGC objectspaceとの相性が悪いらしくうまくうごかないのでmrbgemsから外す必要がある。あと負荷をかけるとコケるのがいまいちわからないが、完璧に動かすのが目的でもないのでこれでいいとして

    mrubyでマルチスレッドGCを実験する - mirichiの日記
  • 1