Class: Serialbench::MemoryProfiler

Inherits:
Object
  • Object
show all
Defined in:
lib/serialbench/memory_profiler.rb

Class Method Summary collapse

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


11
12
13
14
15
16
# File 'lib/serialbench/memory_profiler.rb', line 11

def self.available?
  require 'memory_profiler'
  defined?(::MemoryProfiler) ? true : false
rescue LoadError
  false
end

.format_report(report) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/serialbench/memory_profiler.rb', line 18

def self.format_report(report)
  return 'Memory profiling not available' unless report

  {
    total_allocated: report.total_allocated,
    total_retained: report.total_retained,
    allocated_memory: report.total_allocated_memsize,
    retained_memory: report.total_retained_memsize,
    allocated_objects_by_gem: report.allocated_memory_by_gem,
    retained_objects_by_gem: report.retained_memory_by_gem
  }
end

.profile(&block) ⇒ Object



5
6
7
8
9
# File 'lib/serialbench/memory_profiler.rb', line 5

def self.profile(&block)
  return yield unless defined?(::MemoryProfiler)

  ::MemoryProfiler.report(&block)
end