12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/bin/bash
- # Copyright 2013 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- # Produce memory metrics for run_apply_test
- source "$(dirname ${0})/stress_test_common"
- compute_percentiles() {
- if [ -z "${1}" ]; then
- return;
- fi
- local pctls=".5 .9 1"
- local lines=$(cat ${1} | wc -l)
- for p in $pctls; do
- local count="$(echo "${lines} * $p" | bc -lq | cut -d. -f1)"
- local bytes=$(cat ${1} \
- | cut -d' ' -f2 \
- | sort -n \
- | head -n$count \
- | tail -n1)
- echo -n "$((bytes / 1000000))MB "
- done
- }
- main() {
- if [ $# -lt 1 ]; then
- cat <<EOF
- USAGE: $(basename ${0}) dir
- Produce memory metrics for run_apply_test. This shows the percentiles
- of the max heap size across all files.
- EOF
- exit 1
- fi
- local dir="${1}"
- if [ ! -d "${dir}" ]; then
- error "\"${dir}\" not found" exit 1
- fi
- local metrics_dir="${dir}/metrics"
- local metrics="${dir}/mem_per_file.txt"
- if [ ! -f "${metrics}" ]; then
- local metrics_tmp="${metrics}.tmp"
- echo "computing usage percentiles for courgette. this may take a while..."
- find "${metrics_dir}" \
- | grep "\.apply_mem$" \
- | while read i; do
- local apply_mem="${i}"
- local unbz2_mem="${apply_mem%.apply_mem}.unbz2_mem"
- local unxz_mem="${apply_mem%.apply_mem}.unxz_mem"
- echo -n "$apply_mem "
- cat "${apply_mem}" "${unbz2_mem}" "${unxz_mem}" \
- | grep "mem_heap_B" \
- | cut -d= -f2 \
- | sort -nr \
- | head -n1
- done | sort -k2 -n > "${metrics_tmp}"
- mv "${metrics_tmp}" "${metrics}"
- fi
- echo "$(compute_percentiles ${metrics})max heap per file for Courgette" \
- "(50th 90th 100th)"
- local metrics_bsdiff="${dir}/mem_per_file_bsdiff.txt"
- if [ ! -f "${metrics_bsdiff}" ]; then
- local metrics_bsdiff_tmp="${metrics_bsdiff}.tmp"
- echo "computing usage percentiles for bsdiff. this may take a while..."
- find "${metrics_dir}" \
- | grep "\.bsdiff_mem$" \
- | while read i; do
- local bsdiff_mem="${i}"
- echo -n "$bsdiff_mem "
- cat $bsdiff_mem \
- | grep "mem_heap_B" \
- | cut -d= -f2 \
- | sort -nr \
- | head -n1
- done | sort -k2 -n > "${metrics_bsdiff_tmp}"
- mv "${metrics_bsdiff_tmp}" "${metrics_bsdiff}"
- fi
- echo "$(compute_percentiles ${metrics_bsdiff})max heap per file for bsdiff" \
- "(50th 90th 100th)"
- }
- main "${@}"
|