benchmarks/ary.rb
author Stefan Vogel <sv@exept.de>
Fri, 17 May 2019 16:56:31 +0200
branchcvs_MAIN
changeset 3899 3c0aea90b463
parent 2598 94ae3f5f4df1
permissions -rwxr-xr-x
#REFACTORING by stefan Sanitize BlockValues class: JavaCodeBundleEditor changed: #canAddHolder #canEditHolder #canRemoveHolder
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2598
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     1
#!/usr/bin/env ruby
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     2
require 'benchmark'
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     3
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     4
def ary(x,y,n)
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     5
  (n - 1).downto(1) do |i|
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     6
    y[i] = y[i] + x[i] 
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     7
  end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     8
end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
     9
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    10
results = Benchmark.bmbm do |bm|
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    11
  raise "Expecting one arg - size of arrays" if ARGV.size == 0
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    12
  n = ARGV[0].to_i
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    13
  x = (0...n).to_a
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    14
  y = Array.new(n) { 0 }
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    15
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    16
  bm.report do 
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    17
    1000.times { ary(x, y, n) }
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    18
  end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    19
end
94ae3f5f4df1 adding ruby benchmarks for comparison
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents:
diff changeset
    20
puts "EXECUTION TIME: #{results[0].real * 1000.0}"