[ruby-dev:31891] Re: packed st_table

From: Tanaka Akira <akr@...>
Date: 2007-09-28 09:28:46 UTC
List: ruby-dev #31891
In article <87ejh9qrcv.fsf@fsij.org>,
  Tanaka Akira <akr@fsij.org> writes:

> より現実的な例として REXML を... と思ったのですが、REXML は
> 今は character encodings differ により動かないようなので、測
> 定できませんでした。うぅむ。

最近、REXML が動くようになっているので、試してみました。
(というか、試してもしょうがないことがわかったというか)

RAA の all.html をとってきて tidy -asxml で XML で変換して
500kbytes くらいになったのを r13546 つまり T_OBJECT のパッチ
があたった少し後くらいの Ruby で REXML を使ってパーズしてみ
ました。
(packed st_table とかのパッチはぜんぜんあててません)

massif で得られたグラフが
http://cvs.m17n.org/~akr/diary/2007-09/r13546/massif.rexml-raa.png
で、
http://cvs.m17n.org/~akr/diary/2007-09/
に使用したスクリプトなどが置いてあります。

グラフを見ると、文字列が消費メモリの大半を占めています。

なので、ハッシュをいじってもぜんぜん効きそうにありません。

REXML をどうにかしたければ、文字列をどうにかする必要があるで
しょう。

文字列の消費メモリが激しく振動していることからみて、一時的な
文字列を大量に生成しては GC で回収しているのではないかという
気がします。もしこの推測が正しければ、一時的な文字列オブジェ
クトをなるべく生成しないようにするというのが効きそうです。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next