summitpush / performance-tests

Some code I was playing around with to benchmark different ruby interpreters

This URL has Read+Write access

performance-tests / gen2.rb
100644 36 lines (32 sloc) 0.709 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'benchmark'
 
def generate_primes(max_prime)
  @prime_hash = Hash.new { |h,k| h[k] = true }
  @primes = [ 2 ]
  
  next_prime = 3
  while (next_prime < Math.sqrt(max_prime))
    i = next_prime
    while (i <= (max_prime / next_prime))
      @prime_hash[i * next_prime] = false
      i += 2
    end
   @primes << next_prime
    next_prime += 2
    while (!@prime_hash[next_prime])
      next_prime += 2
    end
  end
  while (next_prime <= max_prime)
    if @prime_hash[next_prime]
      @primes << next_prime
    end
    next_prime += 2
  end
end
 
max = 10**6
Benchmark.bm(40) do |bm|
  5.times do
    bm.report("Generating all primes less than #{max}") do
      generate_primes(max)
    end
  end
end