kamal-railsbench 0.9.9.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/BUGS +2 -0
  2. data/CHANGELOG +2124 -0
  3. data/GCPATCH +73 -0
  4. data/INSTALL +75 -0
  5. data/LICENSE +222 -0
  6. data/Manifest.txt +53 -0
  7. data/PROBLEMS +56 -0
  8. data/README +337 -0
  9. data/Rakefile +51 -0
  10. data/bin/railsbench +80 -0
  11. data/config/benchmarking.rb +21 -0
  12. data/config/benchmarks.rb +21 -0
  13. data/config/benchmarks.yml +2 -0
  14. data/images/empty.png +0 -0
  15. data/images/minus.png +0 -0
  16. data/images/plus.png +0 -0
  17. data/install.rb +70 -0
  18. data/latest_changes.txt +18 -0
  19. data/lib/benchmark.rb +576 -0
  20. data/lib/railsbench/benchmark.rb +576 -0
  21. data/lib/railsbench/benchmark_specs.rb +63 -0
  22. data/lib/railsbench/gc_info.rb +158 -0
  23. data/lib/railsbench/perf_info.rb +146 -0
  24. data/lib/railsbench/perf_utils.rb +202 -0
  25. data/lib/railsbench/railsbenchmark.rb +640 -0
  26. data/lib/railsbench/version.rb +9 -0
  27. data/lib/railsbench/write_headers_only.rb +15 -0
  28. data/postinstall.rb +12 -0
  29. data/ruby184gc.patch +516 -0
  30. data/ruby185gc.patch +562 -0
  31. data/ruby186gc.patch +564 -0
  32. data/ruby19gc.patch +2425 -0
  33. data/script/convert_raw_data_files +49 -0
  34. data/script/generate_benchmarks +171 -0
  35. data/script/perf_bench +74 -0
  36. data/script/perf_comp +151 -0
  37. data/script/perf_comp_gc +113 -0
  38. data/script/perf_diff +48 -0
  39. data/script/perf_diff_gc +53 -0
  40. data/script/perf_html +103 -0
  41. data/script/perf_plot +225 -0
  42. data/script/perf_plot_gc +254 -0
  43. data/script/perf_prof +87 -0
  44. data/script/perf_run +39 -0
  45. data/script/perf_run_gc +40 -0
  46. data/script/perf_table +104 -0
  47. data/script/perf_tex +58 -0
  48. data/script/perf_times +66 -0
  49. data/script/perf_times_gc +94 -0
  50. data/script/run_urls +57 -0
  51. data/setup.rb +1585 -0
  52. data/test/railsbench_test.rb +11 -0
  53. data/test/test_helper.rb +2 -0
  54. metadata +133 -0
data/GCPATCH ADDED
@@ -0,0 +1,73 @@
1
+ The garbage collector distributed with ruby tries to adapt memory
2
+ usage to the amount of memory used by the program, dynamically growing
3
+ or shrinking the allocated heap as it sees fit.
4
+
5
+ For long running server apps this doesn't really work very well. The
6
+ performance very much depends on the ratio heap size/program size. It
7
+ behaves somewhat erratic: adding code can actually make your program
8
+ run faster.
9
+
10
+ The supplied patch fixes this problem: it allows one to specify the
11
+ initial heap size to start with. Heap size will never drop below the
12
+ initial size. By carefully selecting the initial heap size one can
13
+ decrease startup time and increase throughput of server apps.
14
+
15
+ There are 4 patches for different versions of Ruby:
16
+ rubygc184.patch Ruby 1.8.4 (but will apply to 1.82 as well)
17
+ rubygc185.patch Ruby 1.8.5
18
+ rubygc186.patch Ruby 1.8.6
19
+ rubygc19.patch Ruby 1.9
20
+
21
+ Heap size and other options are controlled through environment
22
+ variables:
23
+
24
+ RUBY_HEAP_MIN_SLOTS
25
+ - the initial heap size in number of slots used
26
+
27
+ RUBY_HEAP_SLOTS_INCREMENT
28
+ - how many additional slots to allocate when Ruby allocates
29
+ new heap slots
30
+
31
+ RUBY_HEAP_SLOTS_GROWTH_FACTOR
32
+ - multiplicator used to increase heap block size for the next
33
+ allocation.
34
+
35
+ RUBY_GC_MALLOC_LIMIT
36
+ - the amount of C data structures which can be allocated
37
+ without triggering a GC (if this is set too low, GC will be
38
+ started even if there are empty slots available)
39
+
40
+ RUBY_HEAP_FREE_MIN
41
+ - number of free slots that should be available after GC
42
+ if fewer slots are available, additional heap will be allocated
43
+ (Ruby >= 1.8.5 ensures the freelist has at least heapsize*0.2 entries)
44
+
45
+ The following values make the patched GC behave like the unpatched GC:
46
+
47
+ RUBY_HEAP_MIN_SLOTS=10000
48
+ RUBY_HEAP_SLOTS_INCREMENT=10000
49
+ RUBY_HEAP_SLOTS_GROWTH_FACTOR=1.8
50
+ RUBY_GC_MALLOC_LIMIT=8000000
51
+ RUBY_HEAP_FREE_MIN=4096
52
+
53
+ Try experimenting with these values. You can use perf_run_gc to find
54
+ out how many slots you need.
55
+
56
+ Memory usage of the ruby interpreter can be observed by setting
57
+ RUBY_GC_STATS=1, before you invoke any of the railsbench commands.
58
+
59
+ Per default, GC data gets written to stderr. You can change this
60
+ behavior by setting environment variable RUBY_GC_DATA_FILE.
61
+
62
+ Additionally, the Ruby module GC gets some new methods:
63
+
64
+ GC.enable_stats - enable GC statistics collection
65
+ GC.disable_stats - disable GC statistics collection
66
+ GC.clear_stats - reset GC statistics
67
+ GC.collections - number of collections since stats have been enabled
68
+ GC.time - GC time used since stats have been enabled (miro seconds)
69
+ GC.dump - dumps current heap topology to the GC log file
70
+ GC.log - log given string to the GC log file
71
+
72
+ railsbench detects whether the patch has been applied and provides
73
+ GC statistics only in this case.
data/INSTALL ADDED
@@ -0,0 +1,75 @@
1
+ ==================================================
2
+ RAILSBENCH INSTALLATION
3
+ ==================================================
4
+
5
+ STEP 1: installing railsbench and PATH modification
6
+ ---------------------------------------------------
7
+
8
+ If you obtained and installed railsbench as a gem, a script called
9
+ railsbench is available in your Ruby bin directory. railsbench is a
10
+ simple driver for the railsbench scripts, which are located in the gem
11
+ installation directory. Example:
12
+
13
+ railsbench perf_run 100 -bm=all
14
+
15
+ Alternatively, add the railsbench script directory to your search
16
+ path. The exact place can be found running
17
+
18
+ railsbench base
19
+
20
+ which prints the script directory path. Another option is to run
21
+
22
+ eval `railsbench path`
23
+
24
+ Since gem packages don't support running postinstall scripts, you will
25
+ need to make the scripts executable by running
26
+
27
+ sudo railsbench postinstall
28
+
29
+ After performing these steps, individual commands can be run directly:
30
+
31
+ perf_run 100 -bm=all
32
+
33
+ The environment variable RAILS_ROOT must be set and point to your apps
34
+ base directory, in order for railsbench to work properly.
35
+
36
+ If you obtained railsbench as a svn checkout, add the railsbench
37
+ script directory to your search path.
38
+
39
+ For bash shells you can use railsbench command completion by adding
40
+ this line code to your .bashrc file:
41
+
42
+ complete -W "`railsbench commands`" -o default railsbench
43
+
44
+
45
+ STEP 2: prepare your application for benchmarking
46
+ -------------------------------------------------
47
+
48
+ Manual installation:
49
+
50
+ Copy benchmarks.rb and benchmarks.yml into $RAILS_ROOT/config and
51
+ edit them to suit your needs. The provided default benchmark.yml
52
+ will run the root URL of your app.
53
+
54
+ Copy benchmarking.rb to $RAILS_ROOT/config/environments and add a
55
+ corresponding section to database.yml.
56
+
57
+ Automatic installation:
58
+
59
+ Run 'railsbench install'. This will perform all of the above steps
60
+ and create a configuration named 'benchmarking' in database.yml
61
+ pointing to your development database. In case you are worrying
62
+ about possible results, you can call railsbench install --dry-run
63
+ first.
64
+
65
+ In either case, run `railsbench generate_benchmarks'. This will create
66
+ a benchmarks.yml file with a benchmark for each controller and action.
67
+
68
+
69
+ STEP 3: optional (but highly recommended)
70
+ -----------------------------------------
71
+
72
+ Patch the ruby garbage collector using rubygc18{45}.patch, depending
73
+ on your ruby version. Recompile ruby and copy the ruby binary and
74
+ shared libs to where they were previously installed. See GCPATCH for
75
+ details on how to influence the patched ruby gc.
data/LICENSE ADDED
@@ -0,0 +1,222 @@
1
+ GNU GENERAL PUBLIC LICENSE
2
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
3
+
4
+ 0. This License applies to any program or other work which contains
5
+ a notice placed by the copyright holder saying it may be distributed
6
+ under the terms of this General Public License. The "Program", below,
7
+ refers to any such program or work, and a "work based on the Program"
8
+ means either the Program or any derivative work under copyright law:
9
+ that is to say, a work containing the Program or a portion of it,
10
+ either verbatim or with modifications and/or translated into another
11
+ language. (Hereinafter, translation is included without limitation in
12
+ the term "modification".) Each licensee is addressed as "you".
13
+
14
+ Activities other than copying, distribution and modification are not
15
+ covered by this License; they are outside its scope. The act of
16
+ running the Program is not restricted, and the output from the Program
17
+ is covered only if its contents constitute a work based on the
18
+ Program (independent of having been made by running the Program).
19
+ Whether that is true depends on what the Program does.
20
+
21
+ 1. You may copy and distribute verbatim copies of the Program's
22
+ source code as you receive it, in any medium, provided that you
23
+ conspicuously and appropriately publish on each copy an appropriate
24
+ copyright notice and disclaimer of warranty; keep intact all the
25
+ notices that refer to this License and to the absence of any warranty;
26
+ and give any other recipients of the Program a copy of this License
27
+ along with the Program.
28
+
29
+ You may charge a fee for the physical act of transferring a copy, and
30
+ you may at your option offer warranty protection in exchange for a fee.
31
+
32
+ 2. You may modify your copy or copies of the Program or any portion
33
+ of it, thus forming a work based on the Program, and copy and
34
+ distribute such modifications or work under the terms of Section 1
35
+ above, provided that you also meet all of these conditions:
36
+
37
+ a) You must cause the modified files to carry prominent notices
38
+ stating that you changed the files and the date of any change.
39
+
40
+ b) You must cause any work that you distribute or publish, that in
41
+ whole or in part contains or is derived from the Program or any
42
+ part thereof, to be licensed as a whole at no charge to all third
43
+ parties under the terms of this License.
44
+
45
+ c) If the modified program normally reads commands interactively
46
+ when run, you must cause it, when started running for such
47
+ interactive use in the most ordinary way, to print or display an
48
+ announcement including an appropriate copyright notice and a
49
+ notice that there is no warranty (or else, saying that you provide
50
+ a warranty) and that users may redistribute the program under
51
+ these conditions, and telling the user how to view a copy of this
52
+ License. (Exception: if the Program itself is interactive but
53
+ does not normally print such an announcement, your work based on
54
+ the Program is not required to print an announcement.)
55
+
56
+ These requirements apply to the modified work as a whole. If
57
+ identifiable sections of that work are not derived from the Program,
58
+ and can be reasonably considered independent and separate works in
59
+ themselves, then this License, and its terms, do not apply to those
60
+ sections when you distribute them as separate works. But when you
61
+ distribute the same sections as part of a whole which is a work based
62
+ on the Program, the distribution of the whole must be on the terms of
63
+ this License, whose permissions for other licensees extend to the
64
+ entire whole, and thus to each and every part regardless of who wrote it.
65
+
66
+ Thus, it is not the intent of this section to claim rights or contest
67
+ your rights to work written entirely by you; rather, the intent is to
68
+ exercise the right to control the distribution of derivative or
69
+ collective works based on the Program.
70
+
71
+ In addition, mere aggregation of another work not based on the Program
72
+ with the Program (or with a work based on the Program) on a volume of
73
+ a storage or distribution medium does not bring the other work under
74
+ the scope of this License.
75
+
76
+ 3. You may copy and distribute the Program (or a work based on it,
77
+ under Section 2) in object code or executable form under the terms of
78
+ Sections 1 and 2 above provided that you also do one of the following:
79
+
80
+ a) Accompany it with the complete corresponding machine-readable
81
+ source code, which must be distributed under the terms of Sections
82
+ 1 and 2 above on a medium customarily used for software interchange; or,
83
+
84
+ b) Accompany it with a written offer, valid for at least three
85
+ years, to give any third party, for a charge no more than your
86
+ cost of physically performing source distribution, a complete
87
+ machine-readable copy of the corresponding source code, to be
88
+ distributed under the terms of Sections 1 and 2 above on a medium
89
+ customarily used for software interchange; or,
90
+
91
+ c) Accompany it with the information you received as to the offer
92
+ to distribute corresponding source code. (This alternative is
93
+ allowed only for noncommercial distribution and only if you
94
+ received the program in object code or executable form with such
95
+ an offer, in accord with Subsection b above.)
96
+
97
+ The source code for a work means the preferred form of the work for
98
+ making modifications to it. For an executable work, complete source
99
+ code means all the source code for all modules it contains, plus any
100
+ associated interface definition files, plus the scripts used to
101
+ control compilation and installation of the executable. However, as a
102
+ special exception, the source code distributed need not include
103
+ anything that is normally distributed (in either source or binary
104
+ form) with the major components (compiler, kernel, and so on) of the
105
+ operating system on which the executable runs, unless that component
106
+ itself accompanies the executable.
107
+
108
+ If distribution of executable or object code is made by offering
109
+ access to copy from a designated place, then offering equivalent
110
+ access to copy the source code from the same place counts as
111
+ distribution of the source code, even though third parties are not
112
+ compelled to copy the source along with the object code.
113
+
114
+ 4. You may not copy, modify, sublicense, or distribute the Program
115
+ except as expressly provided under this License. Any attempt
116
+ otherwise to copy, modify, sublicense or distribute the Program is
117
+ void, and will automatically terminate your rights under this License.
118
+ However, parties who have received copies, or rights, from you under
119
+ this License will not have their licenses terminated so long as such
120
+ parties remain in full compliance.
121
+
122
+ 5. You are not required to accept this License, since you have not
123
+ signed it. However, nothing else grants you permission to modify or
124
+ distribute the Program or its derivative works. These actions are
125
+ prohibited by law if you do not accept this License. Therefore, by
126
+ modifying or distributing the Program (or any work based on the
127
+ Program), you indicate your acceptance of this License to do so, and
128
+ all its terms and conditions for copying, distributing or modifying
129
+ the Program or works based on it.
130
+
131
+ 6. Each time you redistribute the Program (or any work based on the
132
+ Program), the recipient automatically receives a license from the
133
+ original licensor to copy, distribute or modify the Program subject to
134
+ these terms and conditions. You may not impose any further
135
+ restrictions on the recipients' exercise of the rights granted herein.
136
+ You are not responsible for enforcing compliance by third parties to
137
+ this License.
138
+
139
+ 7. If, as a consequence of a court judgment or allegation of patent
140
+ infringement or for any other reason (not limited to patent issues),
141
+ conditions are imposed on you (whether by court order, agreement or
142
+ otherwise) that contradict the conditions of this License, they do not
143
+ excuse you from the conditions of this License. If you cannot
144
+ distribute so as to satisfy simultaneously your obligations under this
145
+ License and any other pertinent obligations, then as a consequence you
146
+ may not distribute the Program at all. For example, if a patent
147
+ license would not permit royalty-free redistribution of the Program by
148
+ all those who receive copies directly or indirectly through you, then
149
+ the only way you could satisfy both it and this License would be to
150
+ refrain entirely from distribution of the Program.
151
+
152
+ If any portion of this section is held invalid or unenforceable under
153
+ any particular circumstance, the balance of the section is intended to
154
+ apply and the section as a whole is intended to apply in other
155
+ circumstances.
156
+
157
+ It is not the purpose of this section to induce you to infringe any
158
+ patents or other property right claims or to contest validity of any
159
+ such claims; this section has the sole purpose of protecting the
160
+ integrity of the free software distribution system, which is
161
+ implemented by public license practices. Many people have made
162
+ generous contributions to the wide range of software distributed
163
+ through that system in reliance on consistent application of that
164
+ system; it is up to the author/donor to decide if he or she is willing
165
+ to distribute software through any other system and a licensee cannot
166
+ impose that choice.
167
+
168
+ This section is intended to make thoroughly clear what is believed to
169
+ be a consequence of the rest of this License.
170
+
171
+ 8. If the distribution and/or use of the Program is restricted in
172
+ certain countries either by patents or by copyrighted interfaces, the
173
+ original copyright holder who places the Program under this License
174
+ may add an explicit geographical distribution limitation excluding
175
+ those countries, so that distribution is permitted only in or among
176
+ countries not thus excluded. In such case, this License incorporates
177
+ the limitation as if written in the body of this License.
178
+
179
+ 9. The Free Software Foundation may publish revised and/or new versions
180
+ of the General Public License from time to time. Such new versions will
181
+ be similar in spirit to the present version, but may differ in detail to
182
+ address new problems or concerns.
183
+
184
+ Each version is given a distinguishing version number. If the Program
185
+ specifies a version number of this License which applies to it and "any
186
+ later version", you have the option of following the terms and conditions
187
+ either of that version or of any later version published by the Free
188
+ Software Foundation. If the Program does not specify a version number of
189
+ this License, you may choose any version ever published by the Free Software
190
+ Foundation.
191
+
192
+ 10. If you wish to incorporate parts of the Program into other free
193
+ programs whose distribution conditions are different, write to the author
194
+ to ask for permission. For software which is copyrighted by the Free
195
+ Software Foundation, write to the Free Software Foundation; we sometimes
196
+ make exceptions for this. Our decision will be guided by the two goals
197
+ of preserving the free status of all derivatives of our free software and
198
+ of promoting the sharing and reuse of software generally.
199
+
200
+ NO WARRANTY
201
+
202
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
203
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
204
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
205
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
206
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
207
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
208
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
209
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
210
+ REPAIR OR CORRECTION.
211
+
212
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
213
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
214
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
215
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
216
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
217
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
218
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
219
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
220
+ POSSIBILITY OF SUCH DAMAGES.
221
+
222
+ END OF TERMS AND CONDITIONS
@@ -0,0 +1,53 @@
1
+ BUGS
2
+ CHANGELOG
3
+ GCPATCH
4
+ INSTALL
5
+ LICENSE
6
+ Manifest.txt
7
+ PROBLEMS
8
+ README
9
+ Rakefile
10
+ bin/railsbench
11
+ config/benchmarking.rb
12
+ config/benchmarks.rb
13
+ config/benchmarks.yml
14
+ images/empty.png
15
+ images/minus.png
16
+ images/plus.png
17
+ install.rb
18
+ latest_changes.txt
19
+ lib/benchmark.rb
20
+ lib/railsbench/benchmark.rb
21
+ lib/railsbench/benchmark_specs.rb
22
+ lib/railsbench/gc_info.rb
23
+ lib/railsbench/perf_info.rb
24
+ lib/railsbench/perf_utils.rb
25
+ lib/railsbench/railsbenchmark.rb
26
+ lib/railsbench/version.rb
27
+ lib/railsbench/write_headers_only.rb
28
+ postinstall.rb
29
+ ruby184gc.patch
30
+ ruby185gc.patch
31
+ ruby186gc.patch
32
+ ruby19gc.patch
33
+ script/convert_raw_data_files
34
+ script/generate_benchmarks
35
+ script/perf_bench
36
+ script/perf_comp
37
+ script/perf_comp_gc
38
+ script/perf_diff
39
+ script/perf_diff_gc
40
+ script/perf_html
41
+ script/perf_plot
42
+ script/perf_plot_gc
43
+ script/perf_prof
44
+ script/perf_run
45
+ script/perf_run_gc
46
+ script/perf_table
47
+ script/perf_tex
48
+ script/perf_times
49
+ script/perf_times_gc
50
+ script/run_urls
51
+ setup.rb
52
+ test/railsbench_test.rb
53
+ test/test_helper.rb
@@ -0,0 +1,56 @@
1
+ You might experience the problem described below, if your
2
+ benchmarking.rb environment file contains the line
3
+
4
+ config.action_controller.view_controller_internals = false
5
+
6
+
7
+ This is the preferred setting for a production mode config file, but
8
+ can cause problems when a view template tries to access a method only
9
+ available when view_controller_internals is true.
10
+
11
+ If you experierence backtraces like the one below, try the setting
12
+
13
+ config.action_controller.view_controller_internals = true
14
+
15
+ Typical backtrace:
16
+
17
+ ActionView::TemplateError (undefined method `each' for nil:NilClass) on line #1 of app/views/test/param_access_t
18
+ est.rhtml:
19
+ 1: <% for k,v in params %>
20
+ 2: <%= h k %> = <%= h v %>
21
+ 3: <% end %>
22
+ 4:
23
+
24
+ #{RAILS_ROOT}/app/views/test/param_access_test.rhtml:1:in `_run_rhtml_47app47views47test47param_access_test46rhtml'
25
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_view/base.rb:326:in `compile_and_render_template'
26
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_view/base.rb:301:in `render_template'
27
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_view/base.rb:260:in `render_file'
28
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/base.rb:806:in `render_file'
29
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/base.rb:711:in `render_with_no_layout'
30
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/layout.rb:256:in `render_without_benchmark'
31
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/benchmarking.rb:50:in `render'
32
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/lib/benchmark.rb:300:in `measure'
33
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/benchmarking.rb:50:in `render'
34
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/base.rb:1096:in `perform_action_without_filters'
35
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:632:in `call_filter'
36
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
37
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:438:in `call'
38
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
39
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:634:in `call_filter'
40
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:619:in `perform_action_without_benchmark'
41
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/benchmarking.rb:66:in `perform_action_without_rescue'
42
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/lib/benchmark.rb:300:in `measure'
43
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/benchmarking.rb:66:in `perform_action_without_rescue'
44
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/rescue.rb:83:in `perform_action'
45
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/base.rb:430:in `process_without_filters'
46
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/filters.rb:624:in `process_without_session_management_support'
47
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/session_management.rb:114:in `process'
48
+ c:/home/skaes/svn/trunk12pre/actionpack/lib/action_controller/base.rb:330:in `process'
49
+ c:/home/skaes/svn/trunk12pre/railties/lib/dispatcher.rb:41:in `dispatch'
50
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/lib/railsbench/railsbenchmark.rb:262:in `run_urls_without_benchmark_and_without_gc_control'
51
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/lib/railsbench/railsbenchmark.rb:261:in `run_urls_without_benchmark_and_without_gc_control'
52
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/lib/railsbench/railsbenchmark.rb:259:in `run_urls_without_benchmark_and_without_gc_control'
53
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/lib/railsbench/railsbenchmark.rb:194:in `run_urls_without_benchmark'
54
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/script/run_urls:35
55
+ c:/ruby184/lib/ruby/gems/1.8/gems/railsbench-0.9.2/bin/railsbench:71
56
+ /ruby184/bin/railsbench:18