blob: 92246d3866114d500ecb016b95072bacc45c5da8 [file] [log] [blame]
#!/bin/bash
#
# Copyright 2015 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Convenience Script used to rank GC NVP output.
print_usage_and_die() {
echo "Usage: $0 new-gen-rank|old-gen-rank max|avg logfile"
exit 1
}
if [ $# -ne 3 ]; then
print_usage_and_die
fi
case $1 in
new-gen-rank|old-gen-rank)
OP=$1
;;
*)
print_usage_and_die
esac
case $2 in
max|avg)
RANK_MODE=$2
;;
*)
print_usage_and_die
esac
LOGFILE=$3
GENERAL_INTERESTING_KEYS="\
pause \
"
INTERESTING_NEW_GEN_KEYS="\
${GENERAL_INTERESTING_KEYS} \
scavenge \
weak \
roots \
old_new \
code \
semispace \
object_groups \
"
INTERESTING_OLD_GEN_KEYS="\
${GENERAL_INTERESTING_KEYS} \
external \
clear \
clear.code_flush \
clear.dependent_code \
clear.global_handles \
clear.maps \
clear.slots_buffer \
clear.store_buffer \
clear.string_table \
clear.weak_cells \
clear.weak_collections \
clear.weak_lists \
finish \
evacuate \
evacuate.candidates \
evacuate.clean_up \
evacuate.new_space \
evacuate.update_pointers \
evacuate.update_pointers.between_evacuated \
evacuate.update_pointers.to_evacuated \
evacuate.update_pointers.to_new \
evacuate.update_pointers.weak \
mark \
mark.finish_incremental \
mark.prepare_code_flush \
mark.roots \
mark.weak_closure \
sweep \
sweep.code \
sweep.map \
sweep.old \
incremental_finalize \
"
BASE_DIR=$(dirname $0)
case $OP in
new-gen-rank)
cat $LOGFILE | grep "gc=s" \
| $BASE_DIR/eval_gc_nvp.py \
--no-histogram \
--rank $RANK_MODE \
${INTERESTING_NEW_GEN_KEYS}
;;
old-gen-rank)
cat $LOGFILE | grep "gc=ms" | grep "reduce_memory=0" | grep -v "steps=0" \
| $BASE_DIR/eval_gc_nvp.py \
--no-histogram \
--rank $RANK_MODE \
${INTERESTING_OLD_GEN_KEYS}
;;
*)
;;
esac