rubyperf 1.3.4 → 1.3.5
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/VERSION +1 -1
 - data/lib/perf/meter.rb +1 -1
 - data/lib/perf/report_format.rb +10 -3
 - data/rubyperf.gemspec +1 -1
 - data/test/test_perf_meter.rb +22 -0
 - metadata +2 -2
 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.3. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.3.5
         
     | 
    
        data/lib/perf/meter.rb
    CHANGED
    
    | 
         @@ -320,7 +320,7 @@ module Perf 
     | 
|
| 
       320 
320 
     | 
    
         
             
                    over=@@overhead.total+@@overhead.real
         
     | 
| 
       321 
321 
     | 
    
         
             
                    if over>0 && @@overhead.total>=0 && @@overhead.real>=0
         
     | 
| 
       322 
322 
     | 
    
         
             
                      m=get_measurement(path)
         
     | 
| 
       323 
     | 
    
         
            -
                      if m.count>0 && m.time.total 
     | 
| 
      
 323 
     | 
    
         
            +
                      if m.count>0 && (m.time.total+m.time.real)>0
         
     | 
| 
       324 
324 
     | 
    
         
             
                        return (m.time.total+m.time.real) / (over*m.count)
         
     | 
| 
       325 
325 
     | 
    
         
             
                      end
         
     | 
| 
       326 
326 
     | 
    
         
             
                    end
         
     | 
    
        data/lib/perf/report_format.rb
    CHANGED
    
    | 
         @@ -24,11 +24,15 @@ module Perf 
     | 
|
| 
       24 
24 
     | 
    
         
             
                # ==== Options
         
     | 
| 
       25 
25 
     | 
    
         
             
                #
         
     | 
| 
       26 
26 
     | 
    
         
             
                # * +:max_count_len+  : Maximum expected length of a block/espresson/method count.
         
     | 
| 
      
 27 
     | 
    
         
            +
                # * +filter_below_accuracy+ : Minimum accuracy to report the measure; floating point value; default=nil (all)
         
     | 
| 
      
 28 
     | 
    
         
            +
                # * +filter_below_percent+ : Minimum percent to report the measure; floating point value; default=nil (all)
         
     | 
| 
       27 
29 
     | 
    
         
             
                #
         
     | 
| 
       28 
30 
     | 
    
         | 
| 
       29 
31 
     | 
    
         
             
                def format(perf,options={})
         
     | 
| 
       30 
32 
     | 
    
         
             
                  options||={}
         
     | 
| 
       31 
33 
     | 
    
         
             
                  options[:max_count_len] ||= 6
         
     | 
| 
      
 34 
     | 
    
         
            +
                  options[:filter_below_accuracy] ||= nil
         
     | 
| 
      
 35 
     | 
    
         
            +
                  options[:filter_below_percent]  ||= nil
         
     | 
| 
       32 
36 
     | 
    
         
             
                  rep=[]
         
     | 
| 
       33 
37 
     | 
    
         
             
                  percents={}
         
     | 
| 
       34 
38 
     | 
    
         | 
| 
         @@ -77,13 +81,16 @@ module Perf 
     | 
|
| 
       77 
81 
     | 
    
         | 
| 
       78 
82 
     | 
    
         
             
                  # Split of keys
         
     | 
| 
       79 
83 
     | 
    
         
             
                  keys_in_order.each do |what|
         
     | 
| 
      
 84 
     | 
    
         
            +
                    next if options[:filter_below_percent] && percents[what]<options[:filter_below_percent]
         
     | 
| 
       80 
85 
     | 
    
         
             
                    m=perf.measurements[what]
         
     | 
| 
      
 86 
     | 
    
         
            +
                    accuracy = perf.accuracy(m.path)
         
     | 
| 
      
 87 
     | 
    
         
            +
                    next if options[:filter_below_accuracy] && accuracy<options[:filter_below_accuracy]
         
     | 
| 
       81 
88 
     | 
    
         
             
                    title = format_title(what,options)
         
     | 
| 
       82 
     | 
    
         
            -
                    rep << format_measure(:title      => title, 
     | 
| 
      
 89 
     | 
    
         
            +
                    rep << format_measure(:title      => title,                     :max_title  => max_title,
         
     | 
| 
       83 
90 
     | 
    
         
             
                                          :percent    => percents[what]||0.0,
         
     | 
| 
       84 
     | 
    
         
            -
                                          :count      => m.count, 
     | 
| 
      
 91 
     | 
    
         
            +
                                          :count      => m.count,                   :max_count  => max_count,
         
     | 
| 
       85 
92 
     | 
    
         
             
                                          :time       => m.time,
         
     | 
| 
       86 
     | 
    
         
            -
                                          :accuracy   => format_accuracy( 
     | 
| 
      
 93 
     | 
    
         
            +
                                          :accuracy   => format_accuracy(accuracy), :max_accuracy => MAX_ACCURACY_SIZE,
         
     | 
| 
       87 
94 
     | 
    
         
             
                                          :options    => options)
         
     | 
| 
       88 
95 
     | 
    
         
             
                  end
         
     | 
| 
       89 
96 
     | 
    
         | 
    
        data/rubyperf.gemspec
    CHANGED
    
    
    
        data/test/test_perf_meter.rb
    CHANGED
    
    | 
         @@ -134,6 +134,28 @@ class TestPerfMeter < Test::Unit::TestCase 
     | 
|
| 
       134 
134 
     | 
    
         
             
                assert m.accuracy(m.measurements['\blocks'].path) >= 0
         
     | 
| 
       135 
135 
     | 
    
         
             
                assert m.accuracy(m.measurements['\blocks\a'].path) >= 0
         
     | 
| 
       136 
136 
     | 
    
         
             
                assert m.accuracy(m.measurements['\blocks\b'].path) < 0
         
     | 
| 
      
 137 
     | 
    
         
            +
                assert_equal 2,m.report_list_of_measures(:filter_below_accuracy=>0.0001).length
         
     | 
| 
      
 138 
     | 
    
         
            +
                assert_equal 2,m.report_list_of_measures(:filter_below_percent=>1).length
         
     | 
| 
      
 139 
     | 
    
         
            +
                assert_equal 3,m.report_list_of_measures(:filter_below_accuracy=>-10).length
         
     | 
| 
      
 140 
     | 
    
         
            +
                assert_equal 3,m.report_list_of_measures(:filter_below_percent=>-10).length
         
     | 
| 
      
 141 
     | 
    
         
            +
              end
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
              def test_filters
         
     | 
| 
      
 144 
     | 
    
         
            +
                m=Perf::Meter.new
         
     | 
| 
      
 145 
     | 
    
         
            +
                m.measure(:a) do
         
     | 
| 
      
 146 
     | 
    
         
            +
                  sleep(0.2)
         
     | 
| 
      
 147 
     | 
    
         
            +
                end
         
     | 
| 
      
 148 
     | 
    
         
            +
                m.measure(:b) do
         
     | 
| 
      
 149 
     | 
    
         
            +
                  sleep(0.1)
         
     | 
| 
      
 150 
     | 
    
         
            +
                end
         
     | 
| 
      
 151 
     | 
    
         
            +
                m.measure(:c) do
         
     | 
| 
      
 152 
     | 
    
         
            +
                  sleep(0.0001)
         
     | 
| 
      
 153 
     | 
    
         
            +
                end
         
     | 
| 
      
 154 
     | 
    
         
            +
                assert_equal 4,m.report_list_of_measures.length
         
     | 
| 
      
 155 
     | 
    
         
            +
                assert_equal 3,m.report_list_of_measures(:filter_below_accuracy=>1).length
         
     | 
| 
      
 156 
     | 
    
         
            +
                assert_equal 3,m.report_list_of_measures(:filter_below_accuracy=>500).length
         
     | 
| 
      
 157 
     | 
    
         
            +
                assert_equal 3,m.report_list_of_measures(:filter_below_percent=>10).length
         
     | 
| 
      
 158 
     | 
    
         
            +
                assert_equal 2,m.report_list_of_measures(:filter_below_percent=>45).length
         
     | 
| 
       137 
159 
     | 
    
         
             
              end
         
     | 
| 
       138 
160 
     | 
    
         | 
| 
       139 
161 
     | 
    
         
             
              def test_methods_with_measure
         
     |