https://redmine.ruby-lang.org/
https://redmine.ruby-lang.org/favicon.ico?1711330511
2009-06-15T18:23:30Z
Ruby Issue Tracking System
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4281
2009-06-15T18:23:30Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです.</p>
<p>Tanaka Akira wrote::</p>
<blockquote>
<blockquote>
<p>{:count=>1, # これまで GC が起こった回数<br>
:elapsed_time=>0.004, # これまで GC にかかったユーザ時間<br>
:heap_used=>20, # 利用中の heap の数<br>
:heap_length=>22, # 確保した heap の数<br>
:heap_live_slot=>4742, # 生きている slot の数 (*1)<br>
:heap_free_slot=>5056, # 空いている slot の数 (*1)<br>
:heap_waiting_finalize_slot=>23} # ファイナライザを待っている slot の数</p>
</blockquote>
<p>heap という語は、Ruby 内部での意味とは異なる意味が一般に使わ<br>
れているので、わかりにくいのではないでしょうか。</p>
</blockquote>
<p> 何がいいでしょう.例えば,slot_length, ... とかにして,live_slot とか<br>
にするとか.</p>
<p> まぁ,heap* は,所詮 Ruby の実装を知ってる人しかわからないので,別にい<br>
いような気もするんですが.例えば,GC::Profiler なんかも,知らないとわか<br>
らない内容な気がします.</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4291
2009-06-16T00:52:22Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです.</p>
<p>Tanaka Akira wrote::</p>
<blockquote>
<p>slot は、HEAP_MIN_SLOTS などをみると、オブジェクトの場所とい<br>
う意味で使われていて違うんじゃないかと思いますが。</p>
</blockquote>
<p> 見てると,heap_slot というと,slot の集合のように使ってる感じですね.</p>
<p> Lisp なんかだと,Cell なんて言いますけど,live cell とかは変な感じです<br>
よね.(live|free)_slot は,悪くないような気がしますが.</p>
<blockquote>
<blockquote>
<p> まぁ,heap* は,所詮 Ruby の実装を知ってる人しかわからないので,別にい<br>
いような気もするんですが.例えば,GC::Profiler なんかも,知らないとわか<br>
らない内容な気がします.</p>
</blockquote>
<p>公開のメソッドにすれば、Ruby の実装を知らないひとが興味を持<br>
つことは充分に考えられるでしょう。</p>
<p>実装を知っているひとしかわからなくていいといういいわけは、よ<br>
り通用しにくくなるんじゃないでしょうか。</p>
</blockquote>
<p> 個人的には,そんなに分かりづらい名前じゃないとは思います.よりよい名前<br>
の提案を頂ければ,それに越したことはないんですが.</p>
<p> これを機会に,Ruby 実装での GC まわりの用語の整理とかをしてもらえると<br>
色々と便利かもしれません.</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4292
2009-06-16T01:29:58Z
matz (Yukihiro Matsumoto)
matz@ruby.or.jp
<ul></ul><p>=begin<br>
まつもと ゆきひろです</p>
<p>In message "Re: <a href="https://blade.ruby-lang.org/ruby-dev/38642">[ruby-dev:38642]</a> Re: [Feature: trunk] GC.stat"<br>
on Tue, 16 Jun 2009 00:52:03 +0900, SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> writes:</p>
<p>| 見てると,heap_slot というと,slot の集合のように使ってる感じですね.</p>
<p>一応、名前を付けた本人は</p>
<p>heap - オブジェクトを切り出して来る空間<br>
slot - 切り出してきたオブジェクト(の入れ物)</p>
<p>というニュアンスで名前付けてます。</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4294
2009-06-16T09:31:20Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです.</p>
<p>Yukihiro Matsumoto wrote::</p>
<blockquote>
<p>一応、名前を付けた本人は</p>
<p>heap - オブジェクトを切り出して来る空間<br>
slot - 切り出してきたオブジェクト(の入れ物)</p>
<p>というニュアンスで名前付けてます。</p>
</blockquote>
<p> slot の配列を heap,heap の配列を heaps ,でいいんでしたっけ.</p>
<p> そうすると,free_slot,live_slot (active_slot)は悪くないような.そも<br>
そも heap が嫌って話?</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4295
2009-06-16T09:59:43Z
matz (Yukihiro Matsumoto)
matz@ruby.or.jp
<ul></ul><p>=begin<br>
まつもと ゆきひろです</p>
<p>In message "Re: <a href="https://blade.ruby-lang.org/ruby-dev/38646">[ruby-dev:38646]</a> Re: [Feature: trunk] GC.stat"<br>
on Tue, 16 Jun 2009 09:31:07 +0900, SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> writes:</p>
<p>| slot の配列を heap,heap の配列を heaps ,でいいんでしたっけ.</p>
<p>gc.cではそういう名前になってます。</p>
<p>| そうすると,free_slot,live_slot (active_slot)は悪くないような.そも<br>
|そも heap が嫌って話?</p>
<p>一般的にはheapというのはメモリ割り当てで切り出してくる領域全<br>
体を指すのではないかという指摘だと思います。Gaucheの例でも<br>
(heapに)割り当てられたオブジェクトの数を返してますし。</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4300
2009-06-16T11:18:50Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
Yukihiro Matsumoto wrote::</p>
<blockquote>
<p>まつもと ゆきひろです</p>
<p>In message "Re: <a href="https://blade.ruby-lang.org/ruby-dev/38646">[ruby-dev:38646]</a> Re: [Feature: trunk] GC.stat"<br>
on Tue, 16 Jun 2009 09:31:07 +0900, SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> writes:</p>
<p>| slot の配列を heap,heap の配列を heaps ,でいいんでしたっけ.</p>
<p>gc.cではそういう名前になってます。</p>
<p>| そうすると,free_slot,live_slot (active_slot)は悪くないような.そも<br>
|そも heap が嫌って話?</p>
<p>一般的にはheapというのはメモリ割り当てで切り出してくる領域全<br>
体を指すのではないかという指摘だと思います。Gaucheの例でも<br>
(heapに)割り当てられたオブジェクトの数を返してますし。</p>
</blockquote>
<p> ちょっと考えたのですが,slot というのを,object_slot という形で明示す<br>
れば,あまり間違いようがないと思うのですが,どうでしょう.</p>
<ul>
<li>active_object_slot: 生きてるオブジェクトが格納されている slot</li>
<li>free_object_slot: 空き slot</li>
<li>zombie_object_slot: ファイナライザ待ちオブジェクトの slot</li>
</ul>
<p> gc.c での heap の数(rb_objspace.heap.length)も,取りたいなぁ,と思い<br>
始めたのですが,(heap を使用禁止だとすると)いい名前が思いつかない.</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4304
2009-06-16T13:05:22Z
matz (Yukihiro Matsumoto)
matz@ruby.or.jp
<ul></ul><p>=begin<br>
まつもと ゆきひろです</p>
<p>In message "Re: <a href="https://blade.ruby-lang.org/ruby-dev/38652">[ruby-dev:38652]</a> Re: [Feature: trunk] GC.stat"<br>
on Tue, 16 Jun 2009 11:18:38 +0900, SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> writes:</p>
<p>| gc.c での heap の数(rb_objspace.heap.length)も,取りたいなぁ,と思い<br>
|始めたのですが,(heap を使用禁止だとすると)いい名前が思いつかない.</p>
<p>heap(オブジェクトの割り当て空間)を構成するpageと考えれば名前<br>
付けられるんじゃないでしょうか。</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=4614
2009-07-13T21:55:34Z
yugui (Yuki Sonoda)
yugui@yugui.jp
<ul><li><strong>Assignee</strong> set to <i>ko1 (Koichi Sasada)</i></li><li><strong>Target version</strong> set to <i>2.0.0</i></li></ul><p>=begin</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13360
2010-09-14T16:26:18Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li></ul><p>=begin</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13741
2010-10-15T02:00:51Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです。</p>
<p>(2009/06/14 7:57), SASADA Koichi wrote:</p>
<blockquote>
<p> 現在の GC 関連の状態を表示するためのメソッド GC.stat を追加するのはど<br>
うでしょうか.</p>
<p>{:count=>1, # これまで GC が起こった回数<br>
:elapsed_time=>0.004, # これまで GC にかかったユーザ時間<br>
:heap_used=>20, # 利用中の heap の数<br>
:heap_length=>22, # 確保した heap の数<br>
:heap_live_slot=>4742, # 生きている slot の数 (*1)<br>
:heap_free_slot=>5056, # 空いている slot の数 (*1)<br>
:heap_waiting_finalize_slot=>23} # ファイナライザを待っている slot の数</p>
<p>*1: 一番最後の GC でカウント.</p>
<a name="Gauche-では-gc-stat-というものがあると-shiro-さんに聞いたもので"></a>
<h1 >Gauche では gc-stat というものがある,と shiro さんに聞いたもので.<a href="#Gauche-では-gc-stat-というものがあると-shiro-さんに聞いたもので" class="wiki-anchor">¶</a></h1>
<p>gosh> (gc-stat)<br>
((:total-heap-size 786432) (:free-bytes 163840) (:bytes-since-gc 532376)<br>
(:total-bytes 532352))</p>
</blockquote>
<p> この件、キーの名前をどうするかでちゅうぶらりんになっていました。実装の<br>
詳細に踏み込んだ、処理系開発者しか見ないメソッドという意味を強調するため<br>
に、GC.internal_statistic_information という感じで追加するのはどうでしょ<br>
うか。</p>
<p> で、構造体のフィールドの名前をキーとして追加する。</p>
<p> rdoc には、</p>
<blockquote>
<p>{:count=>1, # これまで GC が起こった回数<br>
:elapsed_time=>0.004, # これまで GC にかかったユーザ時間</p>
</blockquote>
<p>しか載せず、もしかしたら他の情報も入っているかもしれないけれど、これは<br>
バージョン依存である、みたいな注釈があるような。</p>
<p> どうでしょうか。</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13744
2010-10-15T10:01:07Z
matz (Yukihiro Matsumoto)
matz@ruby.or.jp
<ul></ul><p>=begin<br>
まつもと ゆきひろです</p>
<p>In message "Re: <a href="https://blade.ruby-lang.org/ruby-dev/42385">[ruby-dev:42385]</a> Re: [Feature: trunk] GC.stat"<br>
on Fri, 15 Oct 2010 02:00:43 +0900, SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> writes:</p>
<p>| この件、キーの名前をどうするかでちゅうぶらりんになっていました。実装の<br>
|詳細に踏み込んだ、処理系開発者しか見ないメソッドという意味を強調するため<br>
|に、GC.internal_statistic_information という感じで追加するのはどうでしょ<br>
|うか。</p>
<p>うーん、いくらなんでもそんな名前は嫌です。GC.statでいいじゃ<br>
ん。そこに反対したことはありません。</p>
<p>| で、構造体のフィールドの名前をキーとして追加する。<br>
|<br>
| rdoc には、<br>
|<br>
|> {:count=>1, # これまで GC が起こった回数<br>
|> :elapsed_time=>0.004, # これまで GC にかかったユーザ時間<br>
|<br>
|しか載せず、もしかしたら他の情報も入っているかもしれないけれど、これは<br>
|バージョン依存である、みたいな注釈があるような。</p>
<p>ドキュメントにGC.statは処理系依存で、戻り値は(最低限の共通項<br>
以外)バージョン依存であると明記するのでどうでしょうか。</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13746
2010-10-15T16:32:55Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです。</p>
<p>(2010/10/15 2:00), Yukihiro Matsumoto wrote:</p>
<blockquote>
<p>| この件、キーの名前をどうするかでちゅうぶらりんになっていました。実装の<br>
|詳細に踏み込んだ、処理系開発者しか見ないメソッドという意味を強調するため<br>
|に、GC.internal_statistic_information という感じで追加するのはどうでしょ<br>
|うか。</p>
<p>うーん、いくらなんでもそんな名前は嫌です。GC.statでいいじゃ<br>
ん。そこに反対したことはありません。</p>
</blockquote>
<p> 反対してたのは田中さんなんで...。</p>
<blockquote>
<p>ドキュメントにGC.statは処理系依存で、戻り値は(最低限の共通項<br>
以外)バージョン依存であると明記するのでどうでしょうか。</p>
</blockquote>
<p> はい。それでいいなら、それが良いです。</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13749
2010-10-15T16:58:50Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>=begin<br>
2010年10月15日16:32 SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a>:</p>
<blockquote>
<blockquote>
<p>|に、GC.internal_statistic_information という感じで追加するのはどうでしょ<br>
|うか。</p>
<p>うーん、いくらなんでもそんな名前は嫌です。GC.statでいいじゃ<br>
ん。そこに反対したことはありません。</p>
</blockquote>
<p> 反対してたのは田中さんなんで...。</p>
</blockquote>
<h2>GC.stat に反対した覚えはありませんね。<br>
反対なのは返り値の中に含まれる heap という語についてです。</h2>
<p>[田中 哲][たなか あきら][Tanaka Akira]</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13750
2010-10-15T17:09:30Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです。</p>
<p>(2010/10/15 8:58), Tanaka Akira wrote:</p>
<blockquote>
<p>2010年10月15日16:32 SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a>:</p>
<blockquote>
<blockquote>
<p>|に、GC.internal_statistic_information という感じで追加するのはどうでしょ<br>
|うか。</p>
<p>うーん、いくらなんでもそんな名前は嫌です。GC.statでいいじゃ<br>
ん。そこに反対したことはありません。</p>
</blockquote>
<p> 反対してたのは田中さんなんで...。</p>
</blockquote>
<p>GC.stat に反対した覚えはありませんね。<br>
反対なのは返り値の中に含まれる heap という語についてです。</p>
</blockquote>
<p> はい。なので、</p>
<ol>
<li>stat という使いやすい名前じゃなければいいのか、</li>
<li>ドキュメントにあればいいのか、</li>
<li>ソースを変えない限り駄目なのか、</li>
</ol>
<p>って話で、1案を提案してみました。</p>
<p> 2案で良ければ、2案が良いです。</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13812
2010-10-18T19:48:31Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>=begin<br>
2010年10月15日17:09 SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a>:</p>
<blockquote>
<blockquote>
<p>GC.stat に反対した覚えはありませんね。<br>
反対なのは返り値の中に含まれる heap という語についてです。</p>
</blockquote>
<p> はい。なので、</p>
<ol>
<li>stat という使いやすい名前じゃなければいいのか、</li>
</ol>
</blockquote>
<p>heap の問題は stat を変えても解決しませんねえ。</p>
<blockquote>
<ol start="2">
<li>ドキュメントにあればいいのか、</li>
</ol>
</blockquote>
<p>注意書きはいいわけみたいなものでたいてい役に立たない、と思っています。</p>
<blockquote>
<ol start="3">
<li>ソースを変えない限り駄目なのか、</li>
</ol>
</blockquote>
<a name="どう変えるかによるんじゃないでしょうか"></a>
<h2 >どう変えるかによるんじゃないでしょうか。<a href="#どう変えるかによるんじゃないでしょうか" class="wiki-anchor">¶</a></h2>
<p>[田中 哲][たなか あきら][Tanaka Akira]</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13814
2010-10-18T20:37:03Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
ささだです。</p>
<p>(2010/10/18 11:48), Tanaka Akira wrote:</p>
<blockquote>
<blockquote>
<ol>
<li>stat という使いやすい名前じゃなければいいのか、</li>
</ol>
</blockquote>
<p>heap の問題は stat を変えても解決しませんねえ。</p>
</blockquote>
<p> いいえ。</p>
<p> 田中さんの問題提起は、</p>
<blockquote>
<p>公開のメソッドにすれば、Ruby の実装を知らないひとが興味を持<br>
つことは充分に考えられるでしょう。</p>
<p>実装を知っているひとしかわからなくていいといういいわけは、よ<br>
り通用しにくくなるんじゃないでしょうか。</p>
</blockquote>
<p>ということで、「実装を知っている人しかわからなくていい」感を増やしたつも<br>
りです。</p>
<blockquote>
<blockquote>
<ol start="2">
<li>ドキュメントにあればいいのか、</li>
</ol>
</blockquote>
<p>注意書きはいいわけみたいなものでたいてい役に立たない、と思っています。</p>
</blockquote>
<p> という反論が来ていますが、まつもとさん、どうでしょうか。</p>
<p> 私は、言い訳でいいと思いますが。</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13815
2010-10-18T20:57:10Z
matz (Yukihiro Matsumoto)
matz@ruby.or.jp
<ul></ul><p>=begin<br>
まつもと ゆきひろです</p>
<p>In message "Re: <a href="https://blade.ruby-lang.org/ruby-dev/42424">[ruby-dev:42424]</a> Re: [Feature: trunk] GC.stat"<br>
on Mon, 18 Oct 2010 20:30:44 +0900, SASADA Koichi <a href="mailto:ko1@atdot.net" class="email">ko1@atdot.net</a> writes:</p>
<p>|>> 2. ドキュメントにあればいいのか、<br>
|><br>
|> 注意書きはいいわけみたいなものでたいてい役に立たない、と思っています。<br>
|<br>
| という反論が来ていますが、まつもとさん、どうでしょうか。<br>
|<br>
| 私は、言い訳でいいと思いますが。</p>
<p>私も言い訳でいいと思います、少なくともこの件については。</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13913
2010-10-28T04:04:18Z
ko1 (Koichi Sasada)
<ul></ul><p>=begin<br>
(2010/10/18 12:57), Yukihiro Matsumoto wrote:</p>
<blockquote>
<p>私も言い訳でいいと思います、少なくともこの件については。</p>
</blockquote>
<p> というわけで、入れました。</p>
<ul>
<li>言い訳を強調するためにエントリの名前を構造体の名前にあわせました。</li>
<li>elapesed_time は、Profiler によりすぎなのでやめました。<br>
(lazy sweep のことを考えると、ちょっと大変だし)</li>
</ul>
<p> こういう、細かいのも NEWS に書くんでしたっけ。</p>
<p>--<br>
// SASADA Koichi at atdot dot net</p>
<p>=end</p>
Ruby master - Feature #1628: GC.stat
https://redmine.ruby-lang.org/issues/1628?journal_id=13914
2010-10-28T04:07:05Z
ko1 (Koichi Sasada)
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>=begin<br>
This issue was solved with changeset r29616.<br>
Koichi, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<p>=end</p>