ruby-prof 0.5.1-mswin32 → 0.5.2-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -1
- data/ext/ruby_prof.c +1 -1
- data/lib/ruby_prof.so +0 -0
- data/rails_plugin/ruby-prof/init.rb +8 -0
- data/rails_plugin/ruby-prof/lib/profiling.rb +57 -0
- metadata +6 -2
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require 'rake/rdoctask'
|
|
5
5
|
SO_NAME = "ruby_prof.so"
|
6
6
|
|
7
7
|
# ------- Default Package ----------
|
8
|
-
RUBY_PROF_VERSION = "0.5.
|
8
|
+
RUBY_PROF_VERSION = "0.5.2"
|
9
9
|
|
10
10
|
FILES = FileList[
|
11
11
|
'Rakefile',
|
@@ -14,6 +14,7 @@ FILES = FileList[
|
|
14
14
|
'CHANGES',
|
15
15
|
'bin/*',
|
16
16
|
'lib/**/*',
|
17
|
+
'rails_plugin/**/*',
|
17
18
|
'examples/*',
|
18
19
|
'ext/*',
|
19
20
|
'doc/**/*',
|
data/ext/ruby_prof.c
CHANGED
data/lib/ruby_prof.so
CHANGED
Binary file
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'ruby-prof'
|
2
|
+
|
3
|
+
module ActionController #:nodoc:
|
4
|
+
# The ruby-prof module times the performance of actions and reports to the logger. If the Active Record
|
5
|
+
# package has been included, a separate timing section for database calls will be added as well.
|
6
|
+
module Profiling #:nodoc:
|
7
|
+
LOG_PATH = nil
|
8
|
+
|
9
|
+
def self.included(base)
|
10
|
+
base.class_eval do
|
11
|
+
alias_method_chain :perform_action, :profiling
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def perform_action_with_profiling
|
16
|
+
# Profling could be running if this
|
17
|
+
# is a render_component call.
|
18
|
+
if RubyProf.running? or not logger
|
19
|
+
perform_action_without_profiling
|
20
|
+
else
|
21
|
+
result = RubyProf.profile do
|
22
|
+
perform_action_without_profiling
|
23
|
+
end
|
24
|
+
|
25
|
+
output = StringIO.new
|
26
|
+
output << " [#{complete_request_uri rescue "unknown"}]"
|
27
|
+
output << "\n\n"
|
28
|
+
|
29
|
+
# Create a flat printer
|
30
|
+
printer = RubyProf::FlatPrinter.new(result)
|
31
|
+
|
32
|
+
# Skip anything less than 1% - which is a lot of
|
33
|
+
# stuff in Rails. Don't print the source file
|
34
|
+
# its too noisy.
|
35
|
+
printer.print(output, {:min_percent => 1,
|
36
|
+
:print_file => false})
|
37
|
+
logger.info(output.string)
|
38
|
+
|
39
|
+
## Example for Graph html printer
|
40
|
+
#printer = RubyProf::GraphHtmlPrinter.new(result)
|
41
|
+
#path = File.join(LOG_PATH, 'call_graph.html')
|
42
|
+
#File.open(path, 'w') do |file|
|
43
|
+
#printer.print(file, {:min_percent => 1,
|
44
|
+
#:print_file => true})
|
45
|
+
#end
|
46
|
+
|
47
|
+
## Used for KCacheGrind visualizations
|
48
|
+
#printer = RubyProf::CallTreePrinter.new(result)
|
49
|
+
#path = File.join(LOG_PATH, 'callgrind.out')
|
50
|
+
#File.open(path, 'w') do |file|
|
51
|
+
#printer.print(file, {:min_percent => 1,
|
52
|
+
#:print_file => true})
|
53
|
+
#end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ruby-prof
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
7
|
-
date: 2007-07-
|
6
|
+
version: 0.5.2
|
7
|
+
date: 2007-07-19 14:02:03 -06:00
|
8
8
|
summary: Fast Ruby profiler
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -44,6 +44,10 @@ files:
|
|
44
44
|
- lib/ruby-prof/graph_printer.rb
|
45
45
|
- lib/ruby-prof/profile_test_case.rb
|
46
46
|
- lib/ruby-prof/task.rb
|
47
|
+
- rails_plugin/ruby-prof
|
48
|
+
- rails_plugin/ruby-prof/init.rb
|
49
|
+
- rails_plugin/ruby-prof/lib
|
50
|
+
- rails_plugin/ruby-prof/lib/profiling.rb
|
47
51
|
- examples/flat.txt
|
48
52
|
- examples/graph.html
|
49
53
|
- examples/graph.txt
|