[#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:44989] Re: 重いタスクと平行にirbを使うと遅い?

From: "takeru sasaki" <sasaki.takeru@...>
Date: 2008-05-31 17:13:16 UTC
List: ruby-list #44989
佐々木です。

◆1.8.7で試してみました。
 →残念ながら悪化
◆irbのプロンプトにsleep(5)と入れる
 →タスクが速く進みます。

irbとtaskBが動いている状態でCPU使用率が低いままでした。
スレッドの切替がうまくいっていないのでしょうか。


----------------
./configure --prefix=/Users/takeru/ruby187 --enable-pthread

% ~/ruby187/bin/ruby -v irb_slow.rb
ruby 1.8.7 (2008-05-31 patchlevel 0) [i686-darwin8.11.1]
name=A 26% speed=2648051.633355 count=2666445 elapse=1.006946
name=A 53% speed=2609669.174187 count=5346959 elapse=2.048903
name=A 80% speed=2600282.108437 count=8037498 elapse=3.09101

A:  3.820000   0.010000   3.830000 (  3.852071)
task finished. @name=A
irb(main):001:0> $taskB.status
name=A 100% speed=1239188.391085 count=10000000 elapse=8.069798=>
"name=B 2% speed=66647.194641 count=281119 elapse=4.218017"
irb(main):002:0> $taskB.status

=> "name=B 3% speed=55263.206488 count=350160 elapse=6.336223"
irb(main):003:0> $taskB.status
name=A 100% speed=871989.956071 count=10000000 elapse=11.468022=>
"name=B 4% speed=53376.530445 count=406529 elapse=7.61625"
irb(main):004:0> $taskB.status

=> "name=B 4% speed=53392.779396 count=474594 elapse=8.88873"
irb(main):005:0> $taskB.status
=> "name=B 5% speed=26352.361584 count=542031 elapse=20.568593"
irb(main):006:0> $taskB.status
=> "name=B 6% speed=20835.748410 count=619373 elapse=29.726458"
irb(main):007:0> $taskB.status
=> "name=B 6% speed=16314.478079 count=687321 elapse=42.129512"
irb(main):008:0> exit
EXIT from irb.

------------------
% ~/ruby187/bin/ruby -v irb_slow.rb
ruby 1.8.7 (2008-05-31 patchlevel 0) [i686-darwin8.11.1]
name=A 26% speed=2646359.029928 count=2647362 elapse=1.000379
name=A 53% speed=2613595.250062 count=5345670 elapse=2.045332
name=A 80% speed=2601798.251096 count=8035222 elapse=3.088334

A:  3.820000   0.010000   3.830000 (  3.849457)
task finished. @name=A
irb(main):001:0> sleep(5)
name=A 100% speed=1887730.975683 count=10000000 elapse=5.297365
name=A 100% speed=1575239.999628 count=10000000 elapse=6.348239

B:  3.920000   0.030000   3.950000 (  5.305350)
task finished. @name=B
=> 5
irb(main):002:0>
irb(main):003:0* exit
EXIT from irb.

In This Thread