v8/tools/eval_gc_time.sh

111 lines
1.8 KiB
Bash
Raw Normal View History

#!/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 \
mark \
mark_inc \
mark_prepcodeflush \
mark_root \
mark_topopt \
mark_retainmaps \
mark_weakclosure \
mark_stringtable \
mark_weakrefs \
mark_globalhandles \
mark_codeflush \
mark_optimizedcodemaps \
store_buffer_clear \
slots_buffer_clear \
sweep \
sweepns \
sweepos \
sweepcode \
sweepcell \
sweepmap \
sweepaborted \
evacuate \
new_new \
old_new \
root_new \
compaction_ptrs \
intracompaction_ptrs \
misc_compaction \
inc_weak_closure \
weakcollection_process \
weakcollection_clear \
weakcollection_abort \
weakcells \
nonlive_refs \
"
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