HDRHistogram 0.1.3 → 0.1.4
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.
- checksums.yaml +5 -5
- data/ext/ruby_hdr_histogram/ruby_hdr_histogram.c +51 -1
- data/lib/HDRHistogram.rb +40 -0
- data/lib/HDRHistogram/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: fc890bb97e2d8e3df9318ebeadbdfe33f3593b5ce2ca8afaef123c7876c0cb12
         | 
| 4 | 
            +
              data.tar.gz: 4e26dd8585aafc0edc028b31ab0185c8397a95897062aa203fc0a2b8f1cc3839
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 46b8dc766bb51cc69508309b60c9821907f95d14a1564fcca4cbd1447347a02afea2d8cabd6dce41cd40f85ac8e23f8d73020096a821bcc78c8430d3bdc265e9
         | 
| 7 | 
            +
              data.tar.gz: dd38b0453460d01acebaf66c4f6898e9a1f12514cc3ca24dab51c6c76c83f38629f738d3352959cc394c280745106173ae513ef7a58cabc6913d0d0374bdfef4
         | 
| @@ -109,6 +109,29 @@ static VALUE histogram_##int_name(VALUE self) {           \ | |
| 109 109 | 
             
              return INT2NUM(hdr->int_name);                          \
         | 
| 110 110 | 
             
            }
         | 
| 111 111 |  | 
| 112 | 
            +
            #define HISTOGRAM_SETNUM_METHOD(num_name, num_type)       \
         | 
| 113 | 
            +
            static VALUE histogram_set_##num_name(VALUE self, VALUE num) { \
         | 
| 114 | 
            +
              GET_HDRHIST(hdr, self);                                 \
         | 
| 115 | 
            +
              hdr->num_name = NUM2##num_type(num);                    \
         | 
| 116 | 
            +
              return Qtrue;                                           \
         | 
| 117 | 
            +
            }
         | 
| 118 | 
            +
             | 
| 119 | 
            +
            HISTOGRAM_SETNUM_METHOD(lowest_trackable_value, LL)
         | 
| 120 | 
            +
            HISTOGRAM_SETNUM_METHOD(highest_trackable_value, LL)
         | 
| 121 | 
            +
            HISTOGRAM_SETNUM_METHOD(unit_magnitude, LONG)
         | 
| 122 | 
            +
            HISTOGRAM_SETNUM_METHOD(significant_figures, LONG)
         | 
| 123 | 
            +
            HISTOGRAM_SETNUM_METHOD(sub_bucket_half_count_magnitude, LONG)
         | 
| 124 | 
            +
            HISTOGRAM_SETNUM_METHOD(sub_bucket_half_count, LONG)
         | 
| 125 | 
            +
            HISTOGRAM_SETNUM_METHOD(sub_bucket_mask, LL)
         | 
| 126 | 
            +
            HISTOGRAM_SETNUM_METHOD(sub_bucket_count, LONG)
         | 
| 127 | 
            +
            HISTOGRAM_SETNUM_METHOD(bucket_count, LONG)
         | 
| 128 | 
            +
            HISTOGRAM_SETNUM_METHOD(min_value, LL)
         | 
| 129 | 
            +
            HISTOGRAM_SETNUM_METHOD(max_value, LL)
         | 
| 130 | 
            +
            HISTOGRAM_SETNUM_METHOD(normalizing_index_offset, LONG)
         | 
| 131 | 
            +
            HISTOGRAM_SETNUM_METHOD(conversion_ratio, DBL)
         | 
| 132 | 
            +
            HISTOGRAM_SETNUM_METHOD(counts_len, LONG)
         | 
| 133 | 
            +
            HISTOGRAM_SETNUM_METHOD(total_count, LL)
         | 
| 134 | 
            +
             | 
| 112 135 | 
             
            HISTOGRAM_GETINT_METHOD(lowest_trackable_value)
         | 
| 113 136 | 
             
            HISTOGRAM_GETINT_METHOD(highest_trackable_value)
         | 
| 114 137 | 
             
            HISTOGRAM_GETINT_METHOD(unit_magnitude)
         | 
| @@ -117,6 +140,14 @@ HISTOGRAM_GETINT_METHOD(bucket_count) | |
| 117 140 | 
             
            HISTOGRAM_GETINT_METHOD(sub_bucket_count)
         | 
| 118 141 | 
             
            HISTOGRAM_GETINT_METHOD(counts_len)
         | 
| 119 142 |  | 
| 143 | 
            +
            static VALUE histogram_set_raw_count(VALUE self, VALUE index, VALUE count) {
         | 
| 144 | 
            +
              GET_HDRHIST(hdr, self);
         | 
| 145 | 
            +
              int     i = NUM2INT(index);
         | 
| 146 | 
            +
              int64_t c = NUM2LL(count);
         | 
| 147 | 
            +
              hdr->counts[i]=c;
         | 
| 148 | 
            +
              return Qtrue;
         | 
| 149 | 
            +
            }
         | 
| 150 | 
            +
             | 
| 120 151 | 
             
            void Init_ruby_hdr_histogram() {
         | 
| 121 152 | 
             
              HDRHistogram = rb_define_class("HDRHistogram", rb_cObject);
         | 
| 122 153 | 
             
              HDRHistogramError = rb_define_class_under(HDRHistogram, "HDRHistogramError", rb_eRuntimeError);
         | 
| @@ -138,15 +169,34 @@ void Init_ruby_hdr_histogram() { | |
| 138 169 | 
             
              rb_define_private_method(HDRHistogram, "raw_percentile", histogram_percentile, 1);
         | 
| 139 170 | 
             
              rb_define_private_method(HDRHistogram, "raw_merge", histogram_merge, 1);
         | 
| 140 171 |  | 
| 172 | 
            +
              rb_define_private_method(HDRHistogram, "lowest_trackable_value=", histogram_set_lowest_trackable_value, 1);
         | 
| 173 | 
            +
              rb_define_private_method(HDRHistogram, "highest_trackable_value=", histogram_set_highest_trackable_value, 1);
         | 
| 174 | 
            +
              rb_define_private_method(HDRHistogram, "unit_magnitude=", histogram_set_unit_magnitude, 1);
         | 
| 175 | 
            +
              rb_define_private_method(HDRHistogram, "significant_figures=", histogram_set_significant_figures, 1);
         | 
| 176 | 
            +
              rb_define_private_method(HDRHistogram, "sub_bucket_half_count_magnitude=", histogram_set_sub_bucket_half_count_magnitude, 1);
         | 
| 177 | 
            +
              rb_define_private_method(HDRHistogram, "sub_bucket_half_count=", histogram_set_sub_bucket_half_count, 1);
         | 
| 178 | 
            +
              rb_define_private_method(HDRHistogram, "sub_bucket_mask=", histogram_set_sub_bucket_mask, 1);
         | 
| 179 | 
            +
              rb_define_private_method(HDRHistogram, "sub_bucket_count=", histogram_set_sub_bucket_count, 1);
         | 
| 180 | 
            +
              rb_define_private_method(HDRHistogram, "bucket_count=", histogram_set_bucket_count, 1);
         | 
| 181 | 
            +
              rb_define_private_method(HDRHistogram, "min_value=", histogram_set_min_value, 1);
         | 
| 182 | 
            +
              rb_define_private_method(HDRHistogram, "max_value=", histogram_set_max_value, 1);
         | 
| 183 | 
            +
              rb_define_private_method(HDRHistogram, "normalizing_index_offset=", histogram_set_normalizing_index_offset, 1);
         | 
| 184 | 
            +
              rb_define_private_method(HDRHistogram, "conversion_ratio=", histogram_set_conversion_ratio, 1);
         | 
| 185 | 
            +
              rb_define_private_method(HDRHistogram, "counts_len=", histogram_set_counts_len, 1);
         | 
| 186 | 
            +
              rb_define_private_method(HDRHistogram, "total_count=", histogram_set_total_count, 1);
         | 
| 187 | 
            +
              rb_define_private_method(HDRHistogram, "set_raw_count", histogram_set_raw_count, 2);
         | 
| 141 188 |  | 
| 142 189 | 
             
              rb_define_method(HDRHistogram, "lowest_trackable_value", histogram_lowest_trackable_value, 0);
         | 
| 143 190 | 
             
              rb_define_method(HDRHistogram, "highest_trackable_value", histogram_highest_trackable_value, 0);
         | 
| 144 191 | 
             
              rb_define_private_method(HDRHistogram, "unit_magnitude", histogram_unit_magnitude, 0);
         | 
| 145 192 | 
             
              rb_define_method(HDRHistogram, "significant_figures", histogram_significant_figures, 0);
         | 
| 146 193 | 
             
              rb_define_private_method(HDRHistogram, "bucket_count", histogram_bucket_count, 0);
         | 
| 147 | 
            -
              rb_define_private_method(HDRHistogram, "sub_bucket_count",  | 
| 194 | 
            +
              rb_define_private_method(HDRHistogram, "sub_bucket_count", histogram_sub_bucket_count, 0);
         | 
| 148 195 | 
             
              rb_define_private_method(HDRHistogram, "counts_len", histogram_counts_len, 0);
         | 
| 149 196 |  | 
| 197 | 
            +
              
         | 
| 198 | 
            +
              rb_define_private_method(HDRHistogram, "unit_magnitude", histogram_unit_magnitude, 0);
         | 
| 199 | 
            +
              
         | 
| 150 200 | 
             
              //rb_define_private_method(HDRHistogram, "histogram_spectrum", histogram_spectrum, 2);
         | 
| 151 201 | 
             
            }
         | 
| 152 202 |  | 
    
        data/lib/HDRHistogram.rb
    CHANGED
    
    | @@ -5,6 +5,37 @@ class HDRHistogram | |
| 5 5 | 
             
              def initialize(lowest, highest, sig, opt={})
         | 
| 6 6 | 
             
                @multiplier = opt[:multiplier] || 1
         | 
| 7 7 | 
             
                @unit = opt[:unit] || opt[:units]
         | 
| 8 | 
            +
                
         | 
| 9 | 
            +
                if opt[:unserialized]
         | 
| 10 | 
            +
                  m=opt[:unserialized]
         | 
| 11 | 
            +
                  self.unit_magnitude= m[:unit_magnitude].to_i
         | 
| 12 | 
            +
                  self.sub_bucket_half_count_magnitude= m[:sub_bucket_half_count_magnitude].to_i
         | 
| 13 | 
            +
                  self.sub_bucket_half_count= m[:sub_bucket_half_count].to_i
         | 
| 14 | 
            +
                  self.sub_bucket_mask= m[:sub_bucket_mask].to_i
         | 
| 15 | 
            +
                  self.sub_bucket_count= m[:sub_bucket_count].to_i
         | 
| 16 | 
            +
                  self.bucket_count= m[:bucket_count].to_i
         | 
| 17 | 
            +
                  self.min_value= m[:min_value].to_i
         | 
| 18 | 
            +
                  self.max_value= m[:max_value].to_i
         | 
| 19 | 
            +
                  self.normalizing_index_offset= m[:normalizing_index_offset].to_i
         | 
| 20 | 
            +
                  self.conversion_ratio= m[:conversion_ratio].to_f
         | 
| 21 | 
            +
                  self.counts_len= m[:counts_len].to_i
         | 
| 22 | 
            +
                  self.total_count= m[:total_count].to_i
         | 
| 23 | 
            +
                  
         | 
| 24 | 
            +
                  counts = m[:counts].split " "
         | 
| 25 | 
            +
                  i=0
         | 
| 26 | 
            +
                  counts.each do |count|
         | 
| 27 | 
            +
                    m = count.match /^~(\d+)$/
         | 
| 28 | 
            +
                    if m then #zerofill
         | 
| 29 | 
            +
                      m[1].to_i.times do
         | 
| 30 | 
            +
                        set_raw_count(i, 0)
         | 
| 31 | 
            +
                        i=i+1
         | 
| 32 | 
            +
                      end
         | 
| 33 | 
            +
                    else
         | 
| 34 | 
            +
                      set_raw_count(i, count.to_i)
         | 
| 35 | 
            +
                      i=i+1
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 8 39 | 
             
              end
         | 
| 9 40 |  | 
| 10 41 | 
             
              def record(val)
         | 
| @@ -62,4 +93,13 @@ class HDRHistogram | |
| 62 93 | 
             
              end
         | 
| 63 94 | 
             
              private_class_method :adjusted_boundary_val
         | 
| 64 95 |  | 
| 96 | 
            +
              def self.unserialize(str)
         | 
| 97 | 
            +
                regex = /^(?<lowest_trackable_value>\d+) (?<highest_trackable_value>\d+) (?<unit_magnitude>\d+) (?<significant_figures>\d+) (?<sub_bucket_half_count_magnitude>\d+) (?<sub_bucket_half_count>\d+) (?<sub_bucket_mask>\d+) (?<sub_bucket_count>\d+) (?<bucket_count>\d+) (?<min_value>\d+) (?<max_value>\d+) (?<normalizing_index_offset>\d+) (?<conversion_ratio>\S+) (?<counts_len>\d+) (?<total_count>\d+) \[(?<counts>[\d~ ]+)\s\]/
         | 
| 98 | 
            +
                
         | 
| 99 | 
            +
                m = str.match regex
         | 
| 100 | 
            +
                
         | 
| 101 | 
            +
                hdrh = self.new(m[:lowest_trackable_value].to_i, m[:highest_trackable_value].to_i, m[:significant_figures].to_i, {unserialized: m})
         | 
| 102 | 
            +
                
         | 
| 103 | 
            +
                return hdrh
         | 
| 104 | 
            +
              end
         | 
| 65 105 | 
             
            end
         | 
    
        data/lib/HDRHistogram/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: HDRHistogram
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Leo P.
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2018-09-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 128 128 | 
             
                  version: '0'
         | 
| 129 129 | 
             
            requirements: []
         | 
| 130 130 | 
             
            rubyforge_project: 
         | 
| 131 | 
            -
            rubygems_version: 2. | 
| 131 | 
            +
            rubygems_version: 2.7.7
         | 
| 132 132 | 
             
            signing_key: 
         | 
| 133 133 | 
             
            specification_version: 4
         | 
| 134 134 | 
             
            summary: Ruby wrapper for the C hdr_histogram library
         |