blob: 4629d4b26b15dbb2ca24377fdd0408a8ec11071d [file] [log] [blame]
#!/bin/bash
# Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
#
# Tracks the peak resident memory being used by running the supplied command.
# The output is written to the first argument of the script every second.
function Logger() {
output="$1"
while sleep 1
do
grep "VmHWM\|Threads" /proc/$pid/status >> $output
done
}
function Exit {
kill $lid
exit $code
}
function Kill {
kill $lid
kill -9 $pid
exit -1
}
if [ $# -lt 2 ]; then
echo "Takes at least two arguments"
exit 1
fi
OUTPUT_FILE=$1
shift 1
$* &
pid=$!
Logger $OUTPUT_FILE &
lid=$!
trap "Exit" EXIT
trap "Kill" SIGINT
wait $pid
code=$?