summaryrefslogtreecommitdiff
path: root/scripts/memory-static
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/memory-static')
-rwxr-xr-xscripts/memory-static20
1 files changed, 20 insertions, 0 deletions
diff --git a/scripts/memory-static b/scripts/memory-static
new file mode 100755
index 00000000000..54f147a7a91
--- /dev/null
+++ b/scripts/memory-static
@@ -0,0 +1,20 @@
+#!/usr/bin/env ruby
+
+require_relative '../lib/gitlab/popen'
+
+full_report_filename, metrics_filename = ARGV
+abort 'usage: memory-static <full_report_filename> <metrics_filename>' unless full_report_filename && metrics_filename
+
+full_report, status = Gitlab::Popen.popen(%w(bundle exec derailed bundle:mem))
+abort 'failed to execute the benchmark' unless status.zero?
+
+File.open(full_report_filename, 'w') do |f|
+ f.write(full_report)
+end
+
+stats = /TOP: (?<total_mibs_str>.*) MiB/.match(full_report.lines.first)
+abort 'failed to process the benchmark output' unless stats
+
+File.open(metrics_filename, 'a') do |f|
+ f.puts "memory_static_total_mb #{stats[:total_mibs_str].to_f.round(1)}"
+end