v8/tools/eval_gc_time.sh
Ross McIlroy f5d0df35d7 [Heap] Remove code flushing.
Only FullCodegen code ever gets flushed by code flushing. Since we are
deprecating the old pipeline, the added complexity introduced by code
flushing is no longer worth it. This CL removes it (but keeps code aging,
which is used to unlink SFIs from the compilation cache).

BUG=v8:6389,v8:6379,v8:6409

Change-Id: I90de113a101f86dbeaaf0511c61a090ef12aa365
Reviewed-on: https://chromium-review.googlesource.com/507388
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45446}
2017-05-22 09:34:43 +00:00

164 lines
3.3 KiB
Bash
Executable File

#!/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 [OPTIONS]"
echo ""
echo "OPTIONS"
echo " -r|--rank new-gen-rank|old-gen-rank GC mode to profile"
echo " (default: old-gen-rank)"
echo " -s|--sort avg|max sorting mode (default: max)"
echo " -t|--top-level include top-level categories"
echo " -c|--csv provide csv output"
echo " -f|--file FILE profile input in a file"
echo " (default: stdin)"
echo " -p|--percentiles comma separated percentiles"
exit 1
}
OP=old-gen-rank
RANK_MODE=max
TOP_LEVEL=no
CSV=""
LOGFILE=/dev/stdin
PERCENTILES=""
while [[ $# -ge 1 ]]
do
key="$1"
case $key in
-r|--rank)
case $2 in
new-gen-rank|old-gen-rank)
OP="$2"
;;
*)
print_usage_and_die
esac
shift
;;
-s|--sort)
case $2 in
max|avg)
RANK_MODE=$2
;;
*)
print_usage_and_die
esac
shift
;;
-t|--top-level)
TOP_LEVEL=yes
;;
-c|--csv)
CSV=" --csv "
;;
-f|--file)
LOGFILE=$2
shift
;;
-p|--percentiles)
PERCENTILES="--percentiles=$2"
shift
;;
*)
break
;;
esac
shift
done
if [[ $# -ne 0 ]]; then
echo "Unknown option(s): $@"
echo ""
print_usage_and_die
fi
INTERESTING_NEW_GEN_KEYS="\
scavenge \
weak \
roots \
old_new \
semispace \
"
INTERESTING_OLD_GEN_KEYS="\
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 \
evacuate.candidates \
evacuate.clean_up \
evacuate.copy \
evacuate.update_pointers \
evacuate.update_pointers.to_evacuated \
evacuate.update_pointers.to_new \
evacuate.update_pointers.weak \
external.mc_prologue \
external.mc_epilogue \
external.mc_incremental_prologue \
external.mc_incremental_epilogue \
external.weak_global_handles \
mark.finish_incremental \
mark.roots \
mark.weak_closure \
mark.weak_closure.ephemeral \
mark.weak_closure.weak_handles \
mark.weak_closure.weak_roots \
mark.weak_closure.harmony \
sweep.code \
sweep.map \
sweep.old \
"
if [[ "$TOP_LEVEL" = "yes" ]]; then
INTERESTING_OLD_GEN_KEYS="\
${INTERESTING_OLD_GEN_KEYS} \
clear \
evacuate \
finish \
incremental_finalize \
mark \
pause
sweep \
"
INTERESTING_NEW_GEN_KEYS="\
${INTERESTING_NEW_GEN_KEYS} \
"
fi
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 \
$CSV \
$PERCENTILES \
${INTERESTING_NEW_GEN_KEYS}
;;
old-gen-rank)
cat $LOGFILE | grep "gc=ms" \
| $BASE_DIR/eval_gc_nvp.py \
--no-histogram \
--rank $RANK_MODE \
$CSV \
$PERCENTILES \
${INTERESTING_OLD_GEN_KEYS}
;;
*)
;;
esac