memory_profiler 0.9.6 → 0.9.7
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 +4 -4
 - data/CHANGELOG.md +33 -0
 - data/README.md +0 -30
 - data/lib/memory_profiler/helpers.rb +1 -1
 - data/lib/memory_profiler/polychrome.rb +0 -4
 - data/lib/memory_profiler/reporter.rb +19 -34
 - data/lib/memory_profiler/results.rb +5 -1
 - data/lib/memory_profiler/top_n.rb +6 -7
 - data/lib/memory_profiler/version.rb +1 -1
 - metadata +5 -74
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b3f841c1bfcbaecdaccf8359aa37a7d42605c485
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 599119026dfb887ffc810d81da2b17a9e71f29cf
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ac957555ecad713d83c891c87bf118f1a00dcf0633d1f18b3d38181b472f654db5218eb3c6494d66ae7b3a5da8bdd9425a4457a3c5e77f69514d8628490cba98
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 54eb5dc1456d906452b152b000abcaca1d6b229d70e259ca54b2bad36476d69a94edbb2666daa603595a174f468ea7edf619e8afe6554ad3e2606443fbd1d11a
         
     | 
    
        data/CHANGELOG.md
    ADDED
    
    | 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Changelog
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            ## 0.9.7
         
     | 
| 
      
 4 
     | 
    
         
            +
            - Improved class name detection for proxy objects, BasicObject objects, and
         
     | 
| 
      
 5 
     | 
    
         
            +
             other edge cases @inossidabile @Hamdiakoguz @dgynn
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ## 0.9.6
         
     | 
| 
      
 8 
     | 
    
         
            +
            - FIX: pretty_print was failing under some conditions @vincentwoo
         
     | 
| 
      
 9 
     | 
    
         
            +
            - FIX: if #class is somehow nil don't crash @vincentwoo
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## 0.9.5
         
     | 
| 
      
 12 
     | 
    
         
            +
            - Improved stability and performance @dgynn
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            ## 0.9.4
         
     | 
| 
      
 15 
     | 
    
         
            +
            - FIX: remove incorrect RVALUE offset on 2.2  @dgynn
         
     | 
| 
      
 16 
     | 
    
         
            +
            - FEATURE: add total memory usage @dgynn
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ## 0.9.3
         
     | 
| 
      
 19 
     | 
    
         
            +
            - Add class reporting
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            ## 0.9.2
         
     | 
| 
      
 22 
     | 
    
         
            +
            - Fix incorrect syntax in rescue clause
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            ## 0.9.0
         
     | 
| 
      
 25 
     | 
    
         
            +
            - This is quite stable, upping version to reflect
         
     | 
| 
      
 26 
     | 
    
         
            +
            - Fixed bug where it would crash when location was nil for some reason
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            ## 0.0.4
         
     | 
| 
      
 29 
     | 
    
         
            +
            - Added compatibility with released version of Ruby 2.1.0
         
     | 
| 
      
 30 
     | 
    
         
            +
            - Cleanup to use latest APIs available in 2.1.0
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            ## 0.0.3
         
     | 
| 
      
 33 
     | 
    
         
            +
            - Added string analysis
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -362,33 +362,3 @@ Memory profiler also performs some String analysis to help you find strings that 
     | 
|
| 
       362 
362 
     | 
    
         
             
            3. Commit your changes (`git commit -am 'Add some feature'`)
         
     | 
| 
       363 
363 
     | 
    
         
             
            4. Push to the branch (`git push origin my-new-feature`)
         
     | 
| 
       364 
364 
     | 
    
         
             
            5. Create new Pull Request
         
     | 
| 
       365 
     | 
    
         
            -
             
     | 
| 
       366 
     | 
    
         
            -
            ## Changelog
         
     | 
| 
       367 
     | 
    
         
            -
             
     | 
| 
       368 
     | 
    
         
            -
            ### 0.9.6
         
     | 
| 
       369 
     | 
    
         
            -
            - FIX: pretty_print was failing under some conditions @vincentwoo
         
     | 
| 
       370 
     | 
    
         
            -
            - FIX: if #class is somehow nil don't crash @vincentwoo
         
     | 
| 
       371 
     | 
    
         
            -
             
     | 
| 
       372 
     | 
    
         
            -
            ### 0.9.5
         
     | 
| 
       373 
     | 
    
         
            -
            - Improved stability and performance @dgynn
         
     | 
| 
       374 
     | 
    
         
            -
             
     | 
| 
       375 
     | 
    
         
            -
            ### 0.9.4
         
     | 
| 
       376 
     | 
    
         
            -
            - FIX: remove incorrect RVALUE offset on 2.2  @dgynn
         
     | 
| 
       377 
     | 
    
         
            -
            - FEATURE: add total memory usage @dgynn
         
     | 
| 
       378 
     | 
    
         
            -
             
     | 
| 
       379 
     | 
    
         
            -
            ### 0.9.3
         
     | 
| 
       380 
     | 
    
         
            -
            - Add class reporting
         
     | 
| 
       381 
     | 
    
         
            -
             
     | 
| 
       382 
     | 
    
         
            -
            ### 0.9.2
         
     | 
| 
       383 
     | 
    
         
            -
            - Fix incorrect syntax in rescue clause
         
     | 
| 
       384 
     | 
    
         
            -
             
     | 
| 
       385 
     | 
    
         
            -
            ### 0.9.0
         
     | 
| 
       386 
     | 
    
         
            -
            - This is quite stable, upping version to reflect
         
     | 
| 
       387 
     | 
    
         
            -
            - Fixed bug where it would crash when location was nil for some reason
         
     | 
| 
       388 
     | 
    
         
            -
             
     | 
| 
       389 
     | 
    
         
            -
            ### 0.0.4
         
     | 
| 
       390 
     | 
    
         
            -
            - Added compatibility with released version of Ruby 2.1.0
         
     | 
| 
       391 
     | 
    
         
            -
            - Cleanup to use latest APIs available in 2.1.0
         
     | 
| 
       392 
     | 
    
         
            -
             
     | 
| 
       393 
     | 
    
         
            -
            ### 0.0.3
         
     | 
| 
       394 
     | 
    
         
            -
            - Added string analysis
         
     | 
| 
         @@ -48,14 +48,8 @@ module MemoryProfiler 
     | 
|
| 
       48 
48 
     | 
    
         | 
| 
       49 
49 
     | 
    
         
             
                  ObjectSpace.each_object do |obj|
         
     | 
| 
       50 
50 
     | 
    
         
             
                    next unless ObjectSpace.allocation_generation(obj) == generation
         
     | 
| 
       51 
     | 
    
         
            -
                     
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                      retained[obj.__id__] = found if found
         
     | 
| 
       54 
     | 
    
         
            -
                    rescue
         
     | 
| 
       55 
     | 
    
         
            -
                      # __id__ is not defined on BasicObject, skip it
         
     | 
| 
       56 
     | 
    
         
            -
                      # we can probably transplant the object_id at this point,
         
     | 
| 
       57 
     | 
    
         
            -
                      # but it is quite rare
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
      
 51 
     | 
    
         
            +
                    found = allocated[obj.__id__]
         
     | 
| 
      
 52 
     | 
    
         
            +
                    retained[obj.__id__] = found if found
         
     | 
| 
       59 
53 
     | 
    
         
             
                  end
         
     | 
| 
       60 
54 
     | 
    
         
             
                  ObjectSpace.trace_object_allocations_clear
         
     | 
| 
       61 
55 
     | 
    
         | 
| 
         @@ -70,52 +64,43 @@ module MemoryProfiler 
     | 
|
| 
       70 
64 
     | 
    
         
             
                # Stores results along with meta data of objects collected.
         
     | 
| 
       71 
65 
     | 
    
         
             
                def object_list(generation)
         
     | 
| 
       72 
66 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
                  objs = []
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                  ObjectSpace.each_object do |obj|
         
     | 
| 
       76 
     | 
    
         
            -
                    next unless ObjectSpace.allocation_generation(obj) == generation
         
     | 
| 
       77 
     | 
    
         
            -
                    begin
         
     | 
| 
       78 
     | 
    
         
            -
                      if !trace || trace.include?(obj.class)
         
     | 
| 
       79 
     | 
    
         
            -
                        objs << obj
         
     | 
| 
       80 
     | 
    
         
            -
                      end
         
     | 
| 
       81 
     | 
    
         
            -
                    rescue
         
     | 
| 
       82 
     | 
    
         
            -
                      # may not respond to class so skip
         
     | 
| 
       83 
     | 
    
         
            -
                    end
         
     | 
| 
       84 
     | 
    
         
            -
                  end
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
67 
     | 
    
         
             
                  rvalue_size = GC::INTERNAL_CONSTANTS[:RVALUE_SIZE]
         
     | 
| 
       87 
68 
     | 
    
         
             
                  rvalue_size_adjustment = RUBY_VERSION < '2.2' ? rvalue_size : 0
         
     | 
| 
       88 
69 
     | 
    
         
             
                  helper = Helpers.new
         
     | 
| 
       89 
70 
     | 
    
         | 
| 
       90 
71 
     | 
    
         
             
                  result = StatHash.new.compare_by_identity
         
     | 
| 
       91 
72 
     | 
    
         | 
| 
       92 
     | 
    
         
            -
                   
     | 
| 
      
 73 
     | 
    
         
            +
                  ObjectSpace.each_object do |obj|
         
     | 
| 
      
 74 
     | 
    
         
            +
                    next unless ObjectSpace.allocation_generation(obj) == generation
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
       93 
76 
     | 
    
         
             
                    file = ObjectSpace.allocation_sourcefile(obj) || "(no name)".freeze
         
     | 
| 
       94 
77 
     | 
    
         
             
                    next if @ignore_files && @ignore_files =~ file
         
     | 
| 
       95 
78 
     | 
    
         
             
                    next if @allow_files && !(@allow_files =~ file)
         
     | 
| 
       96 
79 
     | 
    
         | 
| 
       97 
     | 
    
         
            -
                     
     | 
| 
       98 
     | 
    
         
            -
                     
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
                     
     | 
| 
       102 
     | 
    
         
            -
                     
     | 
| 
      
 80 
     | 
    
         
            +
                    klass = obj.class rescue nil
         
     | 
| 
      
 81 
     | 
    
         
            +
                    unless Class === klass
         
     | 
| 
      
 82 
     | 
    
         
            +
                      # attempt to determine the true Class when .class returns something other than a Class
         
     | 
| 
      
 83 
     | 
    
         
            +
                      klass = Kernel.instance_method(:class).bind(obj).call
         
     | 
| 
      
 84 
     | 
    
         
            +
                    end
         
     | 
| 
      
 85 
     | 
    
         
            +
                    next if @trace && !trace.include?(klass)
         
     | 
| 
       103 
86 
     | 
    
         | 
| 
       104 
87 
     | 
    
         
             
                    begin
         
     | 
| 
       105 
     | 
    
         
            -
                       
     | 
| 
      
 88 
     | 
    
         
            +
                      line       = ObjectSpace.allocation_sourceline(obj)
         
     | 
| 
      
 89 
     | 
    
         
            +
                      location   = helper.lookup_location(file, line)
         
     | 
| 
      
 90 
     | 
    
         
            +
                      class_name = helper.lookup_class_name(klass)
         
     | 
| 
      
 91 
     | 
    
         
            +
                      gem        = helper.guess_gem(file)
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                      string     = '' << obj  if klass == String
         
     | 
| 
       106 
94 
     | 
    
         | 
| 
       107 
95 
     | 
    
         
             
                      memsize = ObjectSpace.memsize_of(obj) + rvalue_size_adjustment
         
     | 
| 
       108 
96 
     | 
    
         
             
                      # compensate for API bug
         
     | 
| 
       109 
97 
     | 
    
         
             
                      memsize = rvalue_size if memsize > 100_000_000_000
         
     | 
| 
       110 
     | 
    
         
            -
                      result[ 
     | 
| 
      
 98 
     | 
    
         
            +
                      result[obj.__id__] = MemoryProfiler::Stat.new(class_name, gem, file, location, memsize, string)
         
     | 
| 
       111 
99 
     | 
    
         
             
                    rescue
         
     | 
| 
       112 
     | 
    
         
            -
                      #  
     | 
| 
      
 100 
     | 
    
         
            +
                      # give up if any any error occurs inspecting the object
         
     | 
| 
       113 
101 
     | 
    
         
             
                    end
         
     | 
| 
       114 
102 
     | 
    
         
             
                  end
         
     | 
| 
       115 
103 
     | 
    
         | 
| 
       116 
     | 
    
         
            -
                  # Although `objs` will go out of scope, clear the array so objects can definitely be GCd
         
     | 
| 
       117 
     | 
    
         
            -
                  objs.clear
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
104 
     | 
    
         
             
                  result
         
     | 
| 
       120 
105 
     | 
    
         
             
                end
         
     | 
| 
       121 
106 
     | 
    
         
             
              end
         
     | 
| 
         @@ -63,7 +63,11 @@ module MemoryProfiler 
     | 
|
| 
       63 
63 
     | 
    
         
             
                # @param [Hash] options the options for output
         
     | 
| 
       64 
64 
     | 
    
         
             
                # @option opts [String] :to_file a path to your log file
         
     | 
| 
       65 
65 
     | 
    
         
             
                # @option opts [Boolean] :color_output a flag for whether to colorize output
         
     | 
| 
       66 
     | 
    
         
            -
                def pretty_print(io =  
     | 
| 
      
 66 
     | 
    
         
            +
                def pretty_print(io = $stdout, **options)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  # Handle the special case that Ruby PrettyPrint expects `pretty_print`
         
     | 
| 
      
 68 
     | 
    
         
            +
                  # to be a customized pretty printing function for a class
         
     | 
| 
      
 69 
     | 
    
         
            +
                  return io.pp_object(self) if defined?(PP) && io.is_a?(PP)
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       67 
71 
     | 
    
         
             
                  io = File.open(options[:to_file], "w") if options[:to_file]
         
     | 
| 
       68 
72 
     | 
    
         | 
| 
       69 
73 
     | 
    
         
             
                  color_output = options.fetch(:color_output) { io.respond_to?(:isatty) && io.isatty }
         
     | 
| 
         @@ -2,16 +2,15 @@ module MemoryProfiler 
     | 
|
| 
       2 
2 
     | 
    
         
             
              module TopN
         
     | 
| 
       3 
3 
     | 
    
         
             
                # Fast approach for determining the top_n entries in a Hash of Stat objects.
         
     | 
| 
       4 
4 
     | 
    
         
             
                # Returns results for both memory (memsize summed) and objects allocated (count) as a tuple.
         
     | 
| 
       5 
     | 
    
         
            -
                def top_n(max,  
     | 
| 
      
 5 
     | 
    
         
            +
                def top_n(max, metric_method)
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                   
     | 
| 
      
 7 
     | 
    
         
            +
                  stat_totals = self.values.group_by(&metric_method).map do |metric, stats|
         
     | 
| 
      
 8 
     | 
    
         
            +
                    [metric, stats.reduce(0) { |sum, stat| sum + stat.memsize }, stats.size]
         
     | 
| 
      
 9 
     | 
    
         
            +
                  end
         
     | 
| 
       8 
10 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                      map { |key, values| [key, values.reduce(0) { |sum, item| _key, memsize = item ; sum + memsize }, values.size] }
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                  stats_by_memsize = stat_totals.sort_by! { |metric, memsize, _count| [-memsize, metric] }.first(max).
         
     | 
| 
      
 11 
     | 
    
         
            +
                  stats_by_memsize = stat_totals.sort_by! { |metric, memsize, _count| [-memsize, metric] }.take(max).
         
     | 
| 
       13 
12 
     | 
    
         
             
                      map! { |metric, memsize, _count| { data: metric, count: memsize } }
         
     | 
| 
       14 
     | 
    
         
            -
                  stats_by_count = stat_totals.sort_by! { |metric, _memsize, count| [-count, metric] }. 
     | 
| 
      
 13 
     | 
    
         
            +
                  stats_by_count = stat_totals.sort_by! { |metric, _memsize, count| [-count, metric] }.take(max).
         
     | 
| 
       15 
14 
     | 
    
         
             
                      map! { |metric, _memsize, count| { data: metric, count: count } }
         
     | 
| 
       16 
15 
     | 
    
         | 
| 
       17 
16 
     | 
    
         
             
                  [stats_by_memsize, stats_by_count]
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,85 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: memory_profiler
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.9. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.9.7
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sam Saffron
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
       12 
     | 
    
         
            -
            dependencies:
         
     | 
| 
       13 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name: bundler
         
     | 
| 
       15 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
     | 
    
         
            -
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       18 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '1.3'
         
     | 
| 
       20 
     | 
    
         
            -
              type: :development
         
     | 
| 
       21 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       22 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
     | 
    
         
            -
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       25 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: '1.3'
         
     | 
| 
       27 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name: rake
         
     | 
| 
       29 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
     | 
    
         
            -
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       32 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       34 
     | 
    
         
            -
              type: :development
         
     | 
| 
       35 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       36 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
     | 
    
         
            -
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       39 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       41 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name: minitest
         
     | 
| 
       43 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
     | 
    
         
            -
                requirements:
         
     | 
| 
       45 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       46 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       48 
     | 
    
         
            -
              type: :development
         
     | 
| 
       49 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       50 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
     | 
    
         
            -
                requirements:
         
     | 
| 
       52 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       53 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       55 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
     | 
    
         
            -
              name: guard
         
     | 
| 
       57 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
     | 
    
         
            -
                requirements:
         
     | 
| 
       59 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       60 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       62 
     | 
    
         
            -
              type: :development
         
     | 
| 
       63 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       64 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
     | 
    
         
            -
                requirements:
         
     | 
| 
       66 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       67 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       69 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
     | 
    
         
            -
              name: guard-minitest
         
     | 
| 
       71 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       72 
     | 
    
         
            -
                requirements:
         
     | 
| 
       73 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       74 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       75 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       76 
     | 
    
         
            -
              type: :development
         
     | 
| 
       77 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       78 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       79 
     | 
    
         
            -
                requirements:
         
     | 
| 
       80 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       81 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-11-06 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies: []
         
     | 
| 
       83 
13 
     | 
    
         
             
            description: Memory profiling routines for Ruby 2.1+
         
     | 
| 
       84 
14 
     | 
    
         
             
            email:
         
     | 
| 
       85 
15 
     | 
    
         
             
            - sam.saffron@gmail.com
         
     | 
| 
         @@ -87,6 +17,7 @@ executables: [] 
     | 
|
| 
       87 
17 
     | 
    
         
             
            extensions: []
         
     | 
| 
       88 
18 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       89 
19 
     | 
    
         
             
            files:
         
     | 
| 
      
 20 
     | 
    
         
            +
            - CHANGELOG.md
         
     | 
| 
       90 
21 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
       91 
22 
     | 
    
         
             
            - README.md
         
     | 
| 
       92 
23 
     | 
    
         
             
            - lib/memory_profiler.rb
         
     | 
| 
         @@ -119,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       119 
50 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       120 
51 
     | 
    
         
             
            requirements: []
         
     | 
| 
       121 
52 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       122 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 53 
     | 
    
         
            +
            rubygems_version: 2.5.1
         
     | 
| 
       123 
54 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       124 
55 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       125 
56 
     | 
    
         
             
            summary: Memory profiling routines for Ruby 2.1+
         
     |