railsbench 0.9.2 → 0.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +1808 -451
- data/GCPATCH +73 -0
- data/INSTALL +5 -0
- data/Manifest.txt +23 -13
- data/PROBLEMS +0 -0
- data/README +23 -7
- data/Rakefile +1 -2
- data/bin/railsbench +7 -1
- data/config/benchmarking.rb +0 -0
- data/config/benchmarks.rb +3 -2
- data/config/benchmarks.yml +0 -0
- data/images/empty.png +0 -0
- data/images/minus.png +0 -0
- data/images/plus.png +0 -0
- data/install.rb +1 -1
- data/latest_changes.txt +18 -0
- data/lib/benchmark.rb +0 -0
- data/lib/railsbench/benchmark.rb +576 -0
- data/lib/railsbench/benchmark_specs.rb +63 -63
- data/lib/railsbench/gc_info.rb +38 -3
- data/lib/railsbench/perf_info.rb +1 -1
- data/lib/railsbench/perf_utils.rb +202 -179
- data/lib/railsbench/railsbenchmark.rb +213 -55
- data/lib/railsbench/version.rb +9 -9
- data/lib/railsbench/write_headers_only.rb +15 -15
- data/postinstall.rb +0 -0
- data/ruby185gc.patch +56 -29
- data/ruby186gc.patch +564 -0
- data/ruby19gc.patch +2425 -0
- data/script/convert_raw_data_files +49 -49
- data/script/generate_benchmarks +14 -4
- data/script/perf_bench +12 -8
- data/script/perf_comp +1 -1
- data/script/perf_comp_gc +9 -1
- data/script/perf_diff +2 -2
- data/script/perf_diff_gc +2 -2
- data/script/perf_html +1 -1
- data/script/perf_plot +192 -75
- data/script/perf_plot_gc +213 -74
- data/script/perf_prof +29 -10
- data/script/perf_run +2 -2
- data/script/perf_run_gc +2 -2
- data/script/perf_table +2 -2
- data/script/perf_tex +1 -1
- data/script/perf_times +6 -6
- data/script/perf_times_gc +14 -2
- data/script/run_urls +16 -10
- data/setup.rb +0 -0
- data/test/railsbench_test.rb +0 -0
- data/test/test_helper.rb +2 -0
- metadata +77 -55
data/script/perf_times
CHANGED
@@ -22,24 +22,24 @@ files.each do |file|
|
|
22
22
|
printf " requests=#{iter}, options=#{options}\n\n"
|
23
23
|
k = 'loading environment'
|
24
24
|
printf "%-32s %9.5f\n\n", k, pi.load_time_mean
|
25
|
-
printf "%-32s %9s %7s %
|
25
|
+
printf "%-32s %9s %7s %7s %7s\n", 'page request', 'total', 'stddev%', 'r/s', 'ms/r'
|
26
26
|
|
27
27
|
pi.keys.each do |k|
|
28
28
|
t = pi.timings_mean(k)
|
29
29
|
devp = pi.timings_stddev_percentage(k)
|
30
30
|
urls = pi.requests_per_key
|
31
|
-
printf "%-32s %9.5f %7.4f %
|
31
|
+
printf "%-32s %9.5f %7.4f %7.2f %7.2f\n",
|
32
32
|
truncate(k), t, devp, (iter*urls)/t, t*1000/(iter*urls)
|
33
33
|
end
|
34
34
|
|
35
|
-
printf "\n%-32s %9.5f %7.4f %
|
35
|
+
printf "\n%-32s %9.5f %7.4f %7.2f %7.2f\n",
|
36
36
|
"all requests", pi.total_time_mean, pi.total_time_stddev_percentage,
|
37
37
|
pi.request_count/pi.total_time_mean, pi.total_time_mean*1000/pi.request_count
|
38
38
|
|
39
39
|
if pi.gc_stats?
|
40
|
-
printf "\n%-32s %9s %7s %
|
40
|
+
printf "\n%-32s %9s %7s %7s %7s\n",
|
41
41
|
"garbage collection statistics", "time", "stddev%", "count", "total%"
|
42
|
-
printf "%-32s %9.5f %7.4f %
|
42
|
+
printf "%-32s %9.5f %7.4f %7.2f %7.2f\n",
|
43
43
|
"", pi.gc_time_mean, pi.gc_time_stddev_percentage, pi.gc_calls_mean, (pi.gc_time_mean/pi.total_time_mean)*100
|
44
44
|
end
|
45
45
|
|
@@ -49,7 +49,7 @@ end
|
|
49
49
|
|
50
50
|
__END__
|
51
51
|
|
52
|
-
# Copyright (C) 2005
|
52
|
+
# Copyright (C) 2005-2008 Stefan Kaes
|
53
53
|
#
|
54
54
|
# This program is free software; you can redistribute it and/or modify
|
55
55
|
# it under the terms of the GNU General Public License as published by
|
data/script/perf_times_gc
CHANGED
@@ -57,7 +57,19 @@ files.each_with_index do |file, idx|
|
|
57
57
|
gci.freelist_mean, gci.freelist_stddev_percentage, gci.freelist_min, gci.freelist_max
|
58
58
|
|
59
59
|
printf "\nheap topology:\n"
|
60
|
-
|
60
|
+
printf "%9s %6s\n", "slot_size", "#heaps"
|
61
|
+
heaps_count = {}
|
62
|
+
gci.topology.each{|size| heaps_count[size] = (heaps_count[size] || 0) + 1}
|
63
|
+
heaps_count.keys.sort.each do |size|
|
64
|
+
printf "%9d %6d\n", size, heaps_count[size]
|
65
|
+
end
|
66
|
+
|
67
|
+
if gci.mallocs > 0
|
68
|
+
printf "\nleak anlysis:\n"
|
69
|
+
printf "mallocs/bytes : %10d / %10d\n", gci.mallocs, gci.malloced
|
70
|
+
printf "leaks/bytes : %10d / %10d\n", gci.leaks, gci.leaked
|
71
|
+
printf "leaked/request: %10.2f bytes\n", gci.leaked.to_f/gci.num_requests
|
72
|
+
end
|
61
73
|
|
62
74
|
file.close
|
63
75
|
|
@@ -65,7 +77,7 @@ end
|
|
65
77
|
|
66
78
|
__END__
|
67
79
|
|
68
|
-
# Copyright (C) 2005
|
80
|
+
# Copyright (C) 2005-2008 Stefan Kaes
|
69
81
|
#
|
70
82
|
# This program is free software; you can redistribute it and/or modify
|
71
83
|
# it under the terms of the GNU General Public License as published by
|
data/script/run_urls
CHANGED
@@ -1,24 +1,29 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
unless ENV['RAILS_ROOT']
|
4
|
-
$stderr.puts("\nrun_urls: can't run urls unless RAILS_ROOT is set")
|
5
|
-
$stderr.puts("\nbenchmarking aborted!")
|
6
|
-
exit 1
|
7
|
-
end
|
8
|
-
|
9
3
|
if ARGV.length == 0 || ARGV.first == 'help'
|
10
4
|
$stderr.puts "usage: run_urls iterations option_1 ... option_n"
|
11
5
|
$stderr.puts "example: run_urls 100 -bm=default -log | grep Status:"
|
12
6
|
exit 1
|
13
7
|
end
|
14
8
|
|
9
|
+
unless ENV['RAILS_ROOT']
|
10
|
+
if File.directory?("config") && File.exists?("config/environment.rb")
|
11
|
+
ENV['RAILS_ROOT'] = File.expand_path(".")
|
12
|
+
else
|
13
|
+
$stderr.puts("#{File.basename $PROGRAM_NAME}: $RAILS_ROOT not set and could not be configured automatically")
|
14
|
+
exit 1
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
15
18
|
$:.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib'))
|
16
19
|
require 'railsbench/railsbenchmark'
|
17
20
|
require ENV['RAILS_ROOT'] + '/config/benchmarks'
|
18
21
|
|
19
22
|
trap("INT") do
|
20
|
-
$stderr.
|
21
|
-
ActiveRecord::Base.send :clear_all_cached_connections!
|
23
|
+
$stderr.print "clearing database connections ..."
|
24
|
+
ActiveRecord::Base.send :clear_all_cached_connections! if ActiveRecord::Base.respond_to?(:clear_all_cached_connections)
|
25
|
+
ActiveRecord::Base.send :clear_all_connections! if ActiveRecord::Base.respond_to?(:clear_all_connections)
|
26
|
+
$stderr.puts
|
22
27
|
$stderr.puts "benchmarking aborted!"
|
23
28
|
exit!(-1)
|
24
29
|
end
|
@@ -30,11 +35,12 @@ RAILS_BENCHMARKER.iterations = ARGV[0].to_i
|
|
30
35
|
RAILS_BENCHMARKER.setup_test_urls(benchmark_name)
|
31
36
|
RAILS_BENCHMARKER.establish_test_session
|
32
37
|
RAILS_BENCHMARKER.warmup if ARGV.include?('-warmup')
|
33
|
-
RAILS_BENCHMARKER.run_urls_without_benchmark(ENV['RUBY_GC_STATS'].to_i == 1
|
38
|
+
RAILS_BENCHMARKER.run_urls_without_benchmark(ENV['RUBY_GC_STATS'].to_i == 1 ||
|
39
|
+
(GC.respond_to?(:trace_enabled?) && GC.trace_enabled?))
|
34
40
|
|
35
41
|
__END__
|
36
42
|
|
37
|
-
# Copyright (C) 2005
|
43
|
+
# Copyright (C) 2005-2008 Stefan Kaes
|
38
44
|
#
|
39
45
|
# This program is free software; you can redistribute it and/or modify
|
40
46
|
# it under the terms of the GNU General Public License as published by
|
data/setup.rb
CHANGED
File without changes
|
data/test/railsbench_test.rb
CHANGED
File without changes
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,58 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
3
|
-
specification_version: 1
|
4
2
|
name: railsbench
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.9.
|
7
|
-
date: 2007-04-01 00:00:00 +02:00
|
8
|
-
summary: rails benchmarking tools
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: skaes@gmx.net
|
12
|
-
homepage: http://railsbench.rubyforge.org
|
13
|
-
rubyforge_project: railsbench
|
14
|
-
description: rails benchmarking tools
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: false
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.9.8
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Stefan Kaes
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-12-29 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hoe
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.4.0
|
24
|
+
version:
|
25
|
+
description: rails benchmarking tools
|
26
|
+
email: skaes@railsexpress.de
|
27
|
+
executables:
|
28
|
+
- railsbench
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files:
|
32
|
+
- Manifest.txt
|
33
|
+
- latest_changes.txt
|
31
34
|
files:
|
32
35
|
- BUGS
|
33
36
|
- CHANGELOG
|
37
|
+
- GCPATCH
|
34
38
|
- INSTALL
|
35
|
-
- install.rb
|
36
|
-
- postinstall.rb
|
37
39
|
- LICENSE
|
38
40
|
- Manifest.txt
|
39
41
|
- PROBLEMS
|
40
42
|
- README
|
41
43
|
- Rakefile
|
42
|
-
- setup.rb
|
43
|
-
- ruby184gc.patch
|
44
|
-
- ruby185gc.patch
|
45
44
|
- bin/railsbench
|
46
|
-
-
|
45
|
+
- config/benchmarking.rb
|
46
|
+
- config/benchmarks.rb
|
47
|
+
- config/benchmarks.yml
|
48
|
+
- images/empty.png
|
49
|
+
- images/minus.png
|
50
|
+
- images/plus.png
|
51
|
+
- install.rb
|
52
|
+
- latest_changes.txt
|
53
|
+
- lib/benchmark.rb
|
54
|
+
- lib/railsbench/benchmark.rb
|
55
|
+
- lib/railsbench/benchmark_specs.rb
|
47
56
|
- lib/railsbench/gc_info.rb
|
48
57
|
- lib/railsbench/perf_info.rb
|
49
58
|
- lib/railsbench/perf_utils.rb
|
50
|
-
- lib/railsbench/write_headers_only.rb
|
51
59
|
- lib/railsbench/railsbenchmark.rb
|
52
|
-
- lib/railsbench/
|
53
|
-
- lib/
|
54
|
-
-
|
60
|
+
- lib/railsbench/version.rb
|
61
|
+
- lib/railsbench/write_headers_only.rb
|
62
|
+
- postinstall.rb
|
63
|
+
- ruby184gc.patch
|
64
|
+
- ruby185gc.patch
|
65
|
+
- ruby186gc.patch
|
66
|
+
- ruby19gc.patch
|
55
67
|
- script/convert_raw_data_files
|
68
|
+
- script/generate_benchmarks
|
56
69
|
- script/perf_bench
|
57
70
|
- script/perf_comp
|
58
71
|
- script/perf_comp_gc
|
@@ -69,28 +82,37 @@ files:
|
|
69
82
|
- script/perf_times
|
70
83
|
- script/perf_times_gc
|
71
84
|
- script/run_urls
|
72
|
-
-
|
73
|
-
- config/benchmarks.rb
|
74
|
-
- config/benchmarks.yml
|
75
|
-
test_files:
|
85
|
+
- setup.rb
|
76
86
|
- test/railsbench_test.rb
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
executables:
|
82
|
-
- railsbench
|
83
|
-
extensions: []
|
87
|
+
- test/test_helper.rb
|
88
|
+
has_rdoc: true
|
89
|
+
homepage: http://railsbench.rubyforge.org
|
90
|
+
licenses: []
|
84
91
|
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options:
|
94
|
+
- --main
|
95
|
+
- README.txt
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: "0"
|
103
|
+
version:
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: "0"
|
109
|
+
version:
|
85
110
|
requirements: []
|
86
111
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: 1.2.0
|
96
|
-
version:
|
112
|
+
rubyforge_project: railsbench
|
113
|
+
rubygems_version: 1.3.5
|
114
|
+
signing_key:
|
115
|
+
specification_version: 3
|
116
|
+
summary: rails benchmarking tools
|
117
|
+
test_files:
|
118
|
+
- test/railsbench_test.rb
|