[#44909] VRDdeClientについて — Toshiyasu Soejima <clev@...2.so-net.ne.jp>

17 messages 2008/05/11

[#44936] yamlとencoding — "Yutaka Kanemoto" <kinpoco@...>

金本と申します。

16 messages 2008/05/14

[ruby-list:44980] 重いタスクと平行にirbを使うと遅い?

From: "takeru sasaki" <sasaki.takeru@...>
Date: 2008-05-31 06:27:15 UTC
List: ruby-list #44980
佐々木と申します。

件名の通りなのですが、重いタスクを行いながらそのタスクの実行過程/状態を
irbで見ようとIRB.startするとタスク側の処理が遅くなります。

以下を実行するとtask("B")がtask("A")の数倍の時間がかかります。

回避する方法はありませんでしょうか?

よろしくお願いいたします。

-----
require "irb"
require "benchmark"

def task(name)
  puts "\n#{name}:%s" % Benchmark.measure{
    a = 0
    2000000.times{ a += 1 }
  }
end
task("A")

t1 = Thread.start{ task("B") }
IRB.start
puts "EXIT from irb."
t1.join
puts "t1 finished."
-----

linuxとmacでの実行結果です。
---------------------------------
$ ruby -v
ruby 1.8.5 (2006-08-25) [i486-linux]
$ ruby irb_slow.rb

A:  1.530000   0.200000   1.730000 (  1.733631)
irb(main):001:0>
B:  1.520000   0.220000   1.740000 (  7.738588)

irb(main):002:0* exit
EXIT from irb.
t1 finished.
-------------------------
% ruby -v
ruby 1.8.6 (2007-09-23 patchlevel 110) [i686-darwin8.11.1]
% ruby irb_slow.rb

A:  0.670000   0.000000   0.670000 (  0.673415)
irb(main):001:0>
B:  0.910000   0.020000   0.930000 (  8.444208)

irb(main):002:0* exit
EXIT from irb.
t1 finished.
-------------------------

In This Thread

Prev Next