%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#!/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_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