class BenchmarkDriver::Runner::Memory
def extract_maxresident_from_time_output(output)
def extract_maxresident_from_time_output(output) case Etc.uname.fetch(:sysname) when 'Linux' pattern = /^(?<user>\d+.\d+)user\s+(?<system>\d+.\d+)system\s+(?<elapsed1>\d+):(?<elapsed2>\d+.\d+)elapsed.+\([^\s]+\s+(?<maxresident>\d+)maxresident\)k$/ scale = 1000.0 # kilobytes -> bytes when 'Darwin' pattern = /^\s+(?<real>\d+\.\d+)\s+real\s+(?<user>\d+\.\d+)\s+user\s+(?<system>\d+\.\d+)\s+sys$\s+(?<maxresident>\d+)\s+maximum resident set size$/ scale = 1.0 end match_data = pattern.match(output) raise "Unexpected format given from /usr/bin/time:\n#{out}" unless match_data[:maxresident] Integer(match_data[:maxresident]) * scale end