Module: Cure::Helpers::PerfHelpers

Included in:
Coordinator, Extract::Extractor
Defined in:
lib/cure/helpers/perf_helpers.rb

Overview

This module uses some code sourced from here: torrocus.com/blog/different-ways-to-processing-large-csv-file-in-ruby/

Instance Method Summary collapse

Instance Method Details



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/cure/helpers/perf_helpers.rb', line 11

def print_memory_usage(process_name="default")
  cmd = "ps -o rss= -p #{Process.pid}"
  before_mem = `#{cmd}`.to_i
  # before_gc = GC.stat(:total_allocated_objects)

  yield
  after_mem = `#{cmd}`.to_i
  # after_gc = GC.stat(:total_allocated_objects)

  log_info "Total Memory Usage [#{process_name}]: #{((after_mem - before_mem) / 1024.0).round(2)} MB"
  # log_info "Total GC Objects Freed [#{process_name}]: #{after_gc - before_gc}"
end


24
25
26
27
# File 'lib/cure/helpers/perf_helpers.rb', line 24

def print_time_spent(process_name="default", &block)
  time = Benchmark.realtime(&block)
  log_info "Total Processing Time [#{process_name}]: #{time.round(2)}"
end