Module: Spider::Profiling

Defined in:
lib/spiderfw/utils/profiling.rb

Class Method Summary collapse

Class Method Details

.startObject



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/spiderfw/utils/profiling.rb', line 5

def self.start
    raise "Profiling already started" if @profiling_started
    unless Spider.request_mutex
        Spider.mutex_requests!
        Spider.request_mutex.lock
    end
    require 'ruby-prof'
    Spider.logger.debug("Starting profiling")
    @profiling_started = true
    RubyProf.start
end

.started?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/spiderfw/utils/profiling.rb', line 30

def self.started?
    @profiling_started
end

.stopObject



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/spiderfw/utils/profiling.rb', line 17

def self.stop
    result = RubyProf.stop
    @profiling_started = false
    printer = ::RubyProf::GraphHtmlPrinter.new(result)
    file_name = Spider.paths[:tmp]+"/prof_#{DateTime.now.to_s}.html"
    File.open(file_name, 'w') do |f|
        printer.print(f, :min_percent => 0)
    end
    Spider.logger.info("Written profiling info in #{file_name}")
    Spider.request_mutex.unlock
    Spider.request_mutex = nil
end