[#31692] cannot run test-all — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
9 messages
2007/09/01
[#31697] Re: [ruby-list:43970] 次の1.8.6 — Tadayoshi Funaba <tadf@...>
> * [ruby-dev:31379]がペンディング
10 messages
2007/09/01
[#31699] Re: [ruby-list:43970] 次の1.8.6
— Urabe Shyouhei <shyouhei@...>
2007/09/01
Tadayoshi Funaba wrote:
[#31700] Re: [ruby-list:43970] 次の1.8.6
— Tadayoshi Funaba <tadf@...>
2007/09/01
> > WIN32OLE も Time も担当でないし、この報告が何をいいたいのかもよくわか
[#31703] Re: [ruby-list:43970] 次の1.8.6
— Urabe Shyouhei <shyouhei@...>
2007/09/01
Tadayoshi Funaba wrote:
[#31706] Re: [ruby-list:43970] 次の1.8.6
— Tadayoshi Funaba <tadf@...>
2007/09/01
> 今後サポートを続けるべきかはご判断にお任せします。OLEで使われてるん
[#31709] [BUG] non-initialized struct — Tanaka Akira <akr@...>
以下のようにすると [BUG] が出ます。
6 messages
2007/09/02
[#31715] string literal encoding — Nobuyoshi Nakada <nobu@...>
なかだです。
12 messages
2007/09/02
[#31716] Re: string literal encoding
— Yukihiro Matsumoto <matz@...>
2007/09/02
まつもと ゆきひろです
[#31729] packed st_table — Nobuyoshi Nakada <nobu@...>
なかだです。
8 messages
2007/09/04
[#31734] [m17n] String#chop & String#succ — Nobuyoshi Nakada <nobu@...>
なかだです。
2 messages
2007/09/05
[#31744] [m17n] String#encode — Nobuyoshi Nakada <nobu@...>
なかだです。
7 messages
2007/09/06
[#31768] shellescape — "Akinori MUSHA" <knu@...>
shellwords.rb に shellescape() 等を追加しようと思います。
5 messages
2007/09/10
[#31774] RSTRING(value)->ptr == NULL ? — Tietew <tietew+ruby-dev@...>
Tietew です。
7 messages
2007/09/11
[#31778] Re: RSTRING(value)->ptr == NULL ?
— Yukihiro Matsumoto <matz@...>
2007/09/12
まつもと ゆきひろです
[#31781] `scan': character encodings differ (ArgumentError) — Kouhei Sutou <kou@...>
須藤です。
5 messages
2007/09/15
[#31787] 文字列のinspect — eklerni <eklerni@...>
eklerniといいます。
5 messages
2007/09/15
[#31798] generator from Enumerable#map — "Yusuke ENDOH" <mame@...>
遠藤と申します。
7 messages
2007/09/19
[#31810] rb_obj_is_kind_of — Tanaka Akira <akr@...>
rb_obj_is_kind_of の TYPE(cl) ですが、[ruby-dev:31805] の例
5 messages
2007/09/21
[#31815] 文字列の式展開 — eklerni <eklerni@...>
eklerniといいます。
6 messages
2007/09/22
[#31835] Kernel#` is blocked with Ruby/GLib2 on Intel Mac — Kouhei Sutou <kou@...>
須藤です。
5 messages
2007/09/24
[#31842] 拡張ライブラリ内での SIGVTALRM — とみたまさひろ <tommy@...>
とみたです。
10 messages
2007/09/24
[#31848] huge `if' dumps core — "Yusuke ENDOH" <mame@...>
遠藤と申します。
5 messages
2007/09/24
[#31850] meta programming might dump core — "Yusuke ENDOH" <mame@...>
遠藤と申します。
2 messages
2007/09/24
[#31853] optimize T_OBJECT space — Tanaka Akira <akr@...>
T_OBJECT なインスタンスで、インスタンス変数の名前をクラス側
7 messages
2007/09/25
[#31880] Re: optimize T_OBJECT space
— Tanaka Akira <akr@...>
2007/09/28
In article <87r6kne799.fsf@fsij.org>,
[ruby-dev:31760] Re: optimize range space
From:
Tanaka Akira <akr@...>
Date:
2007-09-08 02:43:52 UTC
List:
ruby-dev #31760
In article <877in961dy.fsf@fsij.org>,
Tanaka Akira <akr@fsij.org> writes:
> Range のメモリ消費を節約するのはどうでしょうか。
どのくらい節約できるのか測ってみました。
節約する前は、以下のように、1000000個の range を生成すると
106Mbytes ほど必要です。
% time ./ruby -e 'a = []; 1000000.times {|i| a << (i..i) }
print File.read("/proc/#{$$}/status").gsub(/^[^V].*\n/, "")'
VmPeak: 105604 kB
VmSize: 105604 kB
VmLck: 0 kB
VmHWM: 102596 kB
VmRSS: 102596 kB
VmData: 102772 kB
VmStk: 84 kB
VmExe: 1176 kB
VmLib: 1492 kB
VmPTE: 116 kB
./ruby -e 7.61s user 0.20s system 98% cpu 7.952 total
節約すると、以下のように、 35Mbytes ほどで済みます。
% time ./ruby -e 'a = []; 1000000.times {|i| a << (i..i) }
print File.read("/proc/#{$$}/status").gsub(/^[^V].*\n/, "")'
VmPeak: 35416 kB
VmSize: 35416 kB
VmLck: 0 kB
VmHWM: 32424 kB
VmRSS: 32424 kB
VmData: 32588 kB
VmStk: 84 kB
VmExe: 1176 kB
VmLib: 1492 kB
VmPTE: 48 kB
./ruby -e 3.18s user 0.06s system 97% cpu 3.332 total
つまり、使用メモリは半分以下になり、割合としては約 6割削減で
きています。
さらに、かかった時間も、8秒から 3.3秒くらいと減り、倍以上に
高速化しています。
こうしてみると、いまの Range がいかに無駄なことをしているか
というのがわかるのですが、いかがでしょうか。
--
[田中 哲][たなか あきら][Tanaka Akira]