[#19011] open-uri - very easy net access library — Tanaka Akira <akr@...17n.org>

HTTP, FTP に簡単にアクセスするための open-uri というライブラリを作って

19 messages 2002/12/06

[#19066] ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

41 messages 2002/12/13
[#19079] Re: ruby 1.6.9 preview4 予告 — "Akinori MUSHA" <knu@...> 2002/12/16

At Fri, 13 Dec 2002 15:28:47 +0900,

[#19086] Re: ruby 1.6.9 preview4 予告 — UENO Katsuhiro <unnie@...> 2002/12/17

うえのです。

[#19087] Re: ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto) 2002/12/17

まつもと ゆきひろです

[#19083] Re: [ruby-cvs] ruby: * file.c (utimbuf): need to define for VC++. — WATANABE Hirofumi <eban@...>

わたなべです。

11 messages 2002/12/16

[#19127] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — nobu.nakada@...

なかだです。

16 messages 2002/12/19
[#19129] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — WATANABE Hirofumi <eban@...> 2002/12/19

わたなべです。

[#19198] ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@...

38 messages 2002/12/25
[#19209] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19218] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@... 2002/12/27

[#19219] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19264] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041383157.631472.21307.nullmailer@picachu.netlab.jp>,

[#19271] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19272] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041394108.920587.21729.nullmailer@picachu.netlab.jp>,

[#19276] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19278] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041420724.492653.22355.nullmailer@picachu.netlab.jp>,

[ruby-dev:19242] Re: [1.8] speed

From: UENO Katsuhiro <unnie@...>
Date: 2002-12-30 10:43:53 UTC
List: ruby-dev #19242
うえのです。

On Sun, 29 Dec 2002 23:04:40 +0900
matz@ruby-lang.org (Yukihiro Matsumoto) wrote:

> |単純にオブジェクトの個数に比例させるようにしたほうが、
> |[ruby-dev:18482]は現状の倍弱、[ruby-talk:59662]は1.6の数%増し
> |くらいで、それなりにバランスがとれてるように見えます。
>
> これでコミットしましょうか。

一度大量にオブジェクトを作って解放すると live に対して freed が
大きくなり、malloc_limit が増えにくくなることが考えられます。

# 実際に問題が起こったわけではないのですが、ベンチマークを取る
# スクリプトの結果が奇妙だったので調べてみました。

例えば

Index: gc.c
===================================================================
RCS file: /src/ruby/gc.c,v
retrieving revision 1.114
diff -u -p -r1.114 gc.c
--- gc.c	29 Dec 2002 14:51:22 -0000	1.114
+++ gc.c	30 Dec 2002 10:18:24 -0000
@@ -950,6 +961,7 @@ gc_sweep()
     malloc_limit *= (double)live / (live + freed);
     if (malloc_limit < GC_MALLOC_LIMIT) malloc_limit = GC_MALLOC_LIMIT;
     malloc_increase = 0;
+    printf("malloc_limit=%lu, live=%lu, freed=%d\n",malloc_limit,live,freed);
     if (freed < FREE_MIN) {
 	add_heap();
     }

として次のようなコードを実行すると

a = []
200000.times{a.push Object.new}
a = nil
GC.start
a = []
10000.times{a.push Object.new}
GC.start

$ ./ruby -v
ruby 1.8.0 (2002-12-29) [i686-linux]
$ ./ruby gctest.rb
…(省略)…
malloc_limit=8000000, live=13198, freed=185758

となりました。8000000 / (13198.0 / 185758) - 8000000 = 104597666.3
なので malloc_increase が 100MB を越えないと malloc_limit が増えない
計算になります。
malloc_increase は realloc でも増えるので、8MB というのは割と
簡単に越えてしまうようです。


ところで、xmlscan も 1.8 で動かすと極端に遅くなります。
プロファイラを使えば GC の回数が増えているのが直接の原因なのは
分かるのですが、どうして増えるのかは今調べているところです。



 --  ----  -     - - -- -
うえの かつひろ <unnie@blue.sky.or.jp>

In This Thread