[#15625] rb_hash_initialize — Takaaki Tateishi <ttate@...>

立石です.

22 messages 2002/01/04
[#15627] Re: rb_hash_initialize — matz@... (Yukihiro Matsumoto) 2002/01/04

まつもと ゆきひろです

[#15628] Re: rb_hash_initialize — Takaaki Tateishi <ttate@...> 2002/01/04

立石です.

[#15685] undefined method `inherited' for false (NameError) — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2002/01/15
[#15686] Re: undefined method `inherited' for false (NameError) — nobu.nakada@... 2002/01/15

なかだです。

[#15757] 文字列→整数変換 — nobu.nakada@...

なかだです。

30 messages 2002/01/25

[#15830] [ 提案 ] puts, print 等を IO から分離 — UENO Katsuhiro <unnie@...>

うえのです。

14 messages 2002/01/31

[ruby-dev:15806] Re: GC after load

From: Minero Aoki <aamine@...>
Date: 2002-01-30 02:51:38 UTC
List: ruby-dev #15806
あおきです。

  In mail "[ruby-dev:15802] Re: GC after load"
    matz@ruby-lang.org (Yukihiro Matsumoto) wrote:

> まつもと ゆきひろです

> |> からの意図的な変更のようですが、たかだか 5000 行の TMail で
> |> これだけ遅くなるようだと、巨大ライブラリでは非常に厳しいと思い
> |> ます。
> 
> えーと、確か
> 
>   * 落ちるよりマシ
>   * ロードはふつう繰り返さない

え、たくさん require すると連続ロードになりませんか?
ライブラリのロードはプログラムの最初の一回だけだから、
という意味でしょうか?

あと、昨日のよりももうちょっと詳細な情報があるので参考までに
載せときます。単位は全部秒。

  ruby -rtmail -e0 の時間を各バージョンで計測

  1.7     0.24
  1.6.6   0.18
  1.6.5   0.18
  1.6.4   0.11
  1.6.3   0.11


  同じものを GC をオフにして計測

  1.7     0.10
  1.6.6   0.08
  1.6.4   0.07


  TMail のファイルを結合したものを ruby -c (GC はオン)

  1.7     0.08
  1.6.6   0.06
  1.6.4   0.05


  まとめ

	  StartUp    Compile    Evaluate   GC       Total
  1.7     0.02       0.06       0.02       0.10     0.20
  1.6.6   0.02       0.04       0.02       0.07     0.15
  1.6.4   0.02       0.03       0.02       0.01     0.08

  (StartUp == ruby -e0 にかかる時間。
   Evaluate は module_eval のコンパイル分も含む。)


  ruby -rtmail 時の GC 起動回数

  1.7      20
  1.6.6    19
  1.6.4     3


  式をたくさん入れた大きなファイルひとつを ruby -c するのに
  かかる時間

	     1000    2000    3000    4000    5000   (行)
  -----------------------------------------------------
  1.7        0.08    0.12    0.18    0.24    0.27
  1.7nogc    0.05    0.08    0.12    0.15    0.18
  GC time    0.03    0.04    0.06    0.09    0.09

  1.6.4      0.05    0.14    0.23    0.35    0.56
  1.6.4nogc  0.03    0.06    0.09    0.10    0.12
  GC time    0.02    0.08    0.14    0.25    0.44


以上の結果から、ファイルひとつの場合はおおむね 1.7 のほうが
1.6.4 よりも高速かつ線型増加ですが、ロードに限っては GC 回数が
増えるために遅くなっているのだ。と結論しました。ロードが GC を
増やしていることは、load_file() の rb_gc(); の前に puts を入れ
wc -l で数えて確認しました。
-------------------------------------------------------------------
青木峰郎

In This Thread