#!/usr/bin/env ruby # frozen_string_literal: true abort "usage: #{__FILE__} " unless ARGV.length == 1 memory_bundle_objects_file_name = ARGV.first full_report = File.readlines(memory_bundle_objects_file_name) allocated_str = full_report[1] retained_str = full_report[2] allocated_stats = /Total allocated: (?.*) bytes \((?.*) objects\)/.match(allocated_str) retained_stats = /Total retained: (?.*) bytes \((?.*) objects\)/.match(retained_str) abort 'failed to process the benchmark output' unless allocated_stats && retained_stats puts "memory_static_objects_allocated_mb #{(allocated_stats[:bytes].to_f / (1024 * 1024)).round(1)}" puts "memory_static_objects_retained_mb #{(retained_stats[:bytes].to_f / (1024 * 1024)).round(1)}" puts "memory_static_objects_allocated_items #{allocated_stats[:objects]}" puts "memory_static_objects_retained_items #{retained_stats[:objects]}"