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
- #print_memory_usage(process_name = "default") ⇒ Object
- #print_time_spent(process_name = "default", &block) ⇒ Object
Instance Method Details
#print_memory_usage(process_name = "default") ⇒ Object
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 |
#print_time_spent(process_name = "default", &block) ⇒ Object
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 |