[#45627] some warnings compiled with gcc 4.6.3 — SASADA Koichi <ko1@...>
ささだです.
6 messages
2012/05/06
[#45637] [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい — "Glass_saga (Masaki Matsushita)" <glass.saga@...>
14 messages
2012/05/16
[#45644] Re: [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい
— Tanaka Akira <akr@...>
2012/05/17
2012/5/16 Glass_saga (Masaki Matsushita) <[email protected]>:
[#45645] Re: [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい
— Nobuyoshi Nakada <nobu@...>
2012/05/17
なかだです。
[#45646] Re: [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい
— Tanaka Akira <akr@...>
2012/05/17
2012/5/17 Nobuyoshi Nakada <[email protected]>:
[#45650] space in COUTFLAG — Takahiro Kambe <taca@...>
こんにちは。
6 messages
2012/05/18
[#45670] [ruby-trunk - Bug #6479][Open] ipaddr.rbの受け付ける書式が、プラットフォームによって異なる — "kachick (Kenichi Kamiya)" <kachick1+ruby@...>
9 messages
2012/05/22
[#45671] [ruby-trunk - Bug #6479][Assigned] ipaddr.rbの受け付ける書式が、プラットフォームによって異なる
— "knu (Akinori MUSHA)" <knu@...>
2012/05/23
[#45673] Bug?: level argument of caller — SASADA Koichi <ko1@...>
ささだです.
4 messages
2012/05/23
[ruby-dev:45641] [ruby-trunk - Feature #6440][Assigned] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい
From:
"mame (Yusuke Endoh)" <mame@...>
Date:
2012-05-16 15:57:32 UTC
List:
ruby-dev #45641
Issue #6440 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to nobu (Nobuyoshi Nakada) なんとなくなかださんに。 -- Yusuke Endoh <[email protected]> ---------------------------------------- Feature #6440: 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい https://bugs.ruby-lang.org/issues/6440#change-26666 Author: Glass_saga (Masaki Matsushita) Status: Assigned Priority: Normal Assignee: nobu (Nobuyoshi Nakada) Category: core Target version: 2.0.0 現在のMarshal.loadでは、引数にIOを渡すとIO#getbyteやIO#readで当座に必要な部分のみの読み出しを繰り返すので 大量のメソッド呼び出しが発生し、そのコストが無視できません。 そこで、引数にIOを渡した場合のMarshal.loadにバッファを持たせる事を提案します。 require 'benchmark' require 'tempfile' ary = Array.new(1000){ "hoge" } file = Tempfile.new("foo") Marshal.dump(ary, file) Benchmark.bm do |x| x.report do 100.times do file.rewind Marshal.load(file) end end end file.close 上記のベンチマークでバッファを持つようにしたrubyとtrunkを比較したところ、以下の結果となりました。 trunk(r35660): user system total real 1.880000 0.000000 1.880000 ( 1.874681) proposed: user system total real 0.180000 0.000000 0.180000 ( 0.178556) patchを添付します。 -- http://bugs.ruby-lang.org/