From: Narihiro Nakamura Date: 2012-11-20T08:04:45+09:00 Subject: [ruby-dev:46548] Re: ベンチマークが終わらない 定点観測でもベンチマークがおわってないみたいですね…(タイムアウト処理入れているので気が付きませんでした) r37485 - r37489 の間で問題の変更がおこなわれているようです。 怪しそうなのはr37486かr37485ですねえ。 2012/11/20 SASADA Koichi : > shugo さんの refinement の修正についてベンチマークを取ろうと,昨日からす > べてのベンチマークを走らせたところ,普段なら数時間で終わるのですが,今見 > たら終わってませんでした. > >> so_nsieve_bits >> >> #!/usr/bin/ruby >> # >> # The Great Computer Language Shootout >> # http://shootout.alioth.debian.org/ >> # >> # nsieve-bits in Ruby >> # Contributed by Glenn Parker, March 2005 >> >> CharExponent = 3 >> BitsPerChar = 1 << CharExponent >> LowMask = BitsPerChar - 1 >> >> def sieve(m) >> items = "\xFF" * ((m / BitsPerChar) + 1) >> masks = "" >> BitsPerChar.times do |b| >> masks << (1 << b).chr >> end >> >> count = 0 >> pmax = m - 1 >> 2.step(pmax, 1) do |p| >> if items[p >> CharExponent][p & LowMask] == 1 >> count += 1 >> p.step(pmax, p) do |mult| >> a = mult >> CharExponent >> b = mult & LowMask >> items[a] -= masks[b] if items[a][b] != 0 >> end >> end >> end >> count >> end >> >> n = 9 # (ARGV[0] || 2).to_i >> n.step(n - 2, -1) do |exponent| >> break if exponent < 0 >> m = 2 ** exponent * 10_000 >> count = sieve(m) >> printf "Primes up to %8d %8d\n", m, count >> end >> >> >> clean 30256.3521170616 > => 504.272535 分 > > このベンチマークがえらい時間かかっているようなのですが,何かお心当たりの > ある人は居ませんか? ちょっと異常です. > > 以前は 5 秒弱で終わっていました. > > この clean というのは > ruby 2.0.0dev (2012-11-19 trunk 37722) [x86_64-linux] > です. > > nari さんの定点ベンチマークでは,なんか出てます? > > -- > // SASADA Koichi at atdot dot net > -- Narihiro Nakamura (nari)