[#46340] ASR 1.8.7 同梱の exerb で生成したプログラムが enumerator を見つけられない — "(株)ネットフォレスト 植田裕之" <ueda@...>

植田と申します。

10 messages 2009/09/01
[#46344] Re: ASR 1.8.7 同梱の exerb で生成したプログラムが enumerator を見つけられない — arton <artonx@...> 2009/09/01

artonです。

[#46345] Re: ASR 1.8.7 同梱の exerb で生成したプログラムが enumerator を見つけられない — "NARUSE, Yui" <naruse@...> 2009/09/01

成瀬です。

[ruby-list:46406] Process.times のユーザ時間が本来の値の1/3になる

From: Makoto Kuwata <kwa@...>
Date: 2009-09-22 14:07:51 UTC
List: ruby-list #46406
桑田といいます。
Process.times() で返されるユーザ時間の値が正しくない現象が
発生して困っています。
どなたかアドバイスをいただけたらと思います。

●症状

Process.times() で返される user time が、real time の約 1/3 に
なっている。

●再現コード

fib.rb:
----------------------------------------
def fib(n)
  return n <= 2 ? 1 : fib(n-1)+fib(n-2)
end

t1      = Process.times
start_t = Time.now

n = 35
print "fib(#{n})="
puts fib(n)

t2      = Process.times
end_t   = Time.now

user_t = t2.utime - t1.utime
sys_t  = t2.stime - t1.stime
real_t = end_t    - start_t
puts "*** user %4.4s, sys %4.4s, real %4.4s" % [user_t, sys_t, real_t]
----------------------------------------

実行結果:
----------------------------------------
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
$ time ruby fib.rb
fib(35)=9227465
*** user 3.31, sys  0.0, real 10.0

real	0m10.089s
user	0m3.312s
sys	0m0.000s
----------------------------------------

real time は約10秒ですが、user time はその 1/3 になっています。
もちろん、他にCPUを消費しているようなプロセスはありません。
Ruby 1.9 でも症状は変わりません。

----------------------------------------
$ time /usr/local/ruby/1.9.1-p243/bin/ruby fib.rb
fib(35)=9227465
*** user 0.54, sys  0.0, real 1.66

real	0m1.850s
user	0m0.547s
sys	0m0.001s
----------------------------------------


●環境

FedoraCore 11, x86_64, Macbook(Intel CoreDuo2 2GHz)

●補足

実は Perl 5 でも同じ現象が発生しているので、Ruby固有の
問題ではなく、x86_64 linux の問題かもしれません。
(でも Python では発生していません。)


どなたか、ヒントになる情報がありましたらよろしくお願いします。

--
regards,
makoto kuwata

In This Thread

Prev Next