Skip to content

Instantly share code, notes, and snippets.

@BanzaiMan
Created September 27, 2011 01:33
Show Gist options
  • Save BanzaiMan/1244048 to your computer and use it in GitHub Desktop.
Save BanzaiMan/1244048 to your computer and use it in GitHub Desktop.
Sieve of Eratosthenes
$ rvm jruby-1.6.4,rbx-1.2.1,ruby-1.9.2 is_prime.rb
"jruby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (Java HotSpot(TM) Client VM 1.6.0_26) [darwin-i386-java]"
user system total real
100K primes 10.880000 0.000000 10.880000 ( 10.850000)
user system total real
100K primes 10.330000 0.000000 10.330000 ( 10.330000)
user system total real
100K primes 10.064000 0.000000 10.064000 ( 10.064000)
user system total real
100K primes 10.059000 0.000000 10.059000 ( 10.059000)
user system total real
100K primes 10.034000 0.000000 10.034000 ( 10.033000)
"rubinius 1.2.1 (1.8.7 release 2011-02-15 JI) [x86_64-apple-darwin10.6.0]"
user system total real
100K primes 11.070340 0.288108 11.358448 ( 11.555149)
user system total real
100K primes 10.701828 0.246002 10.947830 ( 11.031982)
user system total real
100K primes 10.704264 0.247315 10.951579 ( 11.032562)
user system total real
100K primes 10.715485 0.248473 10.963958 ( 11.049437)
user system total real
100K primes 10.700206 0.244643 10.944849 ( 11.150400)
"ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]"
user system total real
100K primes 7.690000 0.160000 7.850000 ( 7.960060)
user system total real
100K primes 7.760000 0.160000 7.920000 ( 8.282890)
user system total real
100K primes 7.730000 0.150000 7.880000 ( 7.939747)
user system total real
100K primes 7.780000 0.160000 7.940000 ( 8.431071)
user system total real
100K primes 7.730000 0.150000 7.880000 ( 7.970668)
require 'benchmark'
p RUBY_DESCRIPTION
N = 1299709 #100K-th prime
PRIMES = (2..N).to_a
5.times do
Benchmark.bm(30) { |bm|
bm.report("100K primes") do
index = 2
primes = PRIMES.dup
while primes[index]**2 < primes.last
prime = primes[index]
primes = primes.select {|x| x == prime || x%prime != 0}
index += 1
end
#p primes
end
}
end
$ jruby --server is_prime.rb
"jruby 1.7.0.dev (ruby-1.8.7-p330) (2011-09-23 2b786ba) (Java HotSpot(TM) Server VM 1.6.0_26) [darwin-i386-java]"
user system total real
100K primes 8.003000 0.000000 8.003000 ( 7.967000)
user system total real
100K primes 7.742000 0.000000 7.742000 ( 7.742000)
user system total real
100K primes 7.950000 0.000000 7.950000 ( 7.950000)
user system total real
100K primes 7.977000 0.000000 7.977000 ( 7.977000)
user system total real
100K primes 8.032000 0.000000 8.032000 ( 8.033000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment