[#44909] VRDdeClientについて — Toshiyasu Soejima <clev@...2.so-net.ne.jp>
#
17 messages
2008/05/11
[#44911] Re: VRDdeClientについて
— yukimi_sake <yukimi_sake@...>
2008/05/11
こんにちは、雪見酒です。
[#44923] Re: VRDdeClientについて
— Takahiro Kambe <taca@...>
2008/05/13
In message <4826942F.4080102@ck2.so-net.ne.jp>
[#44910] SimpleDelegator#dupの引数objについて — "SHIMADA Koji" <snoozer.05@...>
しまだです。
6 messages
2008/05/11
[#44936] yamlとencoding — "Yutaka Kanemoto" <kinpoco@...>
金本と申します。
16 messages
2008/05/14
[#44937] Re: yamlとencoding
— "NARUSE, Yui" <naruse@...>
2008/05/14
成瀬です。
[#44952] Re: yamlとencoding
— "NARUSE, Yui" <naruse@...>
2008/05/17
成瀬です。
[#44997] Re: yamlとencoding
— "Yutaka Kanemoto" <kinpoco@...>
2008/06/03
金本と申します.
[#44942] Gemでhpricotインストールエラー — "Yangkook Kim" <yangkookkim@...>
Kimと申します。
8 messages
2008/05/16
[#44945] Re: Gemでhpricotインストールエラー
— rubikitch@...
2008/05/16
From: "Yangkook Kim" <yangkookkim@gmail.com>
[#44980] 重いタスクと平行にirbを使うと遅い? — "takeru sasaki" <sasaki.takeru@...>
佐々木と申します。
8 messages
2008/05/31
[#44981] Re: 重いタスクと平行にirbを使うと遅い?
— rubikitch@...
2008/05/31
From: "takeru sasaki" <sasaki.takeru@gmail.com>
[#44986] Ruby 1.8.7 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.7 をリリースしました。
5 messages
2008/05/31
[ruby-list:44982] Re: 重いタスクと平行にirbを使うと遅い?
From:
"takeru sasaki" <sasaki.takeru@...>
Date:
2008-05-31 11:11:03 UTC
List:
ruby-list #44982
佐々木です。
IRB.startを先に持ってくるとtaskBをirbから操作できません。
本当にやりたいことはtaskBの進行状況や内部状態を確認したり、タスクの状態を変更したりを
irbから好きなタイミングで自由にやりたいのです。
-----
require "irb"
require "benchmark"
class Task
attr_reader :count
JOBS = 10000000
def initialize(name)
@name = name
end
def run
@start = Time.now
puts "\n#{@name}:%s" % Benchmark.measure{
@count = 0
JOBS.times{ @count += 1 }
}
puts "task finished. @name=#{@name}"
end
def status
elapse = Time.now-@start
"name=#{@name} #{(100*@count/JOBS).to_i}%
speed=#{'%f'%(@count/elapse)} count=#{@count} elapse=#{elapse}"
end
end
$taskA = Task.new("A")
thread1 = Thread.start{
5.times{
sleep(1)
puts $taskA.status
}
}
$taskA.run
thread2 = Thread.start{
$taskB = Task.new("B")
$taskB.run
}
IRB.start
puts "EXIT from irb."
-----
% ruby irb_slow.rb
name=A 26% speed=2652551.441800 count=2672053 elapse=1.007352
name=A 53% speed=2623722.702715 count=5389499 elapse=2.054142
name=A 81% speed=2615815.896775 count=8111530 elapse=3.100956
A: 3.800000 0.010000 3.810000 ( 3.829246)
task finished. @name=A
irb(main):001:0> name=A 100% speed=2400890.634390 count=10000000 elapse=4.165121
name=A 100% speed=1854824.379663 count=10000000 elapse=5.391346
irb(main):002:0*
irb(main):003:0* $taskB.status
=> "name=B 10% speed=239556.290150 count=1051368 elapse=4.388814"
irb(main):004:0>
irb(main):005:0*
irb(main):006:0* $taskB.status
=> "name=B 18% speed=222926.040621 count=1833350 elapse=8.224028"
irb(main):007:0>
irb(main):008:0*
irb(main):009:0* $taskB.status
=> "name=B 27% speed=214473.275541 count=2774582 elapse=12.936726"
irb(main):010:0> $taskB.status
=> "name=B 37% speed=208881.120976 count=3792840 elapse=18.157888"
irb(main):011:0>
irb(main):012:0*
B: 5.320000 0.100000 5.420000 ( 52.943583)
task finished. @name=B
irb(main):013:0* exit
EXIT from irb.
2008/05/31 16:54 <rubikitch@ruby-lang.org>:
> From: "takeru sasaki" <sasaki.takeru@gmail.com>
> Subject: [ruby-list:44980] 重いタスクと平行にirbを使うと遅い?
> Date: Sat, 31 May 2008 15:27:15 +0900
>
>> t1 = Thread.start{ task("B") }
>> IRB.start
>
> IRB.startをt1の前に持って行くのはどうでしょうか?
>
> require "irb"
> require "benchmark"
>
> def task(name)
> puts "\n#{name}:%s" % Benchmark.measure{
> a = 0
> 200000.times{ a += 1 }
> }
> end
> task("A")
>
> IRB.start
> t1 = Thread.start{ task("B") }
> puts "EXIT from irb."
> t1.join
> puts "t1 finished."
> # >>
> # >> A: 0.090000 0.000000 0.090000 ( 0.092097)
> # >> EXIT from irb.
> # >>
> # >> B: 0.090000 0.000000 0.090000 ( 0.097652)
> # >> t1 finished.
> --
> rubikitch
> Blog: http://d.hatena.ne.jp/rubikitch/
> Site: http://www.rubyist.net/~rubikitch/
>
>