• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2#
3# Copyright 2015 the V8 project authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7# Convenience Script used to rank GC NVP output.
8
9print_usage_and_die() {
10  echo "Usage: $0 new-gen-rank|old-gen-rank max|avg logfile"
11  exit 1
12}
13
14if [ $# -ne 3 ]; then
15  print_usage_and_die
16fi
17
18case $1 in
19  new-gen-rank|old-gen-rank)
20    OP=$1
21    ;;
22  *)
23    print_usage_and_die
24esac
25
26case $2 in
27  max|avg)
28    RANK_MODE=$2
29    ;;
30  *)
31    print_usage_and_die
32esac
33
34LOGFILE=$3
35
36GENERAL_INTERESTING_KEYS="\
37  pause \
38"
39
40INTERESTING_NEW_GEN_KEYS="\
41  ${GENERAL_INTERESTING_KEYS} \
42  scavenge \
43  weak \
44  roots \
45  old_new \
46  code \
47  semispace \
48  object_groups \
49"
50
51INTERESTING_OLD_GEN_KEYS="\
52  ${GENERAL_INTERESTING_KEYS} \
53  external \
54  clear \
55  clear.code_flush \
56  clear.dependent_code \
57  clear.global_handles \
58  clear.maps \
59  clear.slots_buffer \
60  clear.store_buffer \
61  clear.string_table \
62  clear.weak_cells \
63  clear.weak_collections \
64  clear.weak_lists \
65  finish \
66  evacuate \
67  evacuate.candidates \
68  evacuate.clean_up \
69  evacuate.new_space \
70  evacuate.update_pointers \
71  evacuate.update_pointers.between_evacuated \
72  evacuate.update_pointers.to_evacuated \
73  evacuate.update_pointers.to_new \
74  evacuate.update_pointers.weak \
75  mark \
76  mark.finish_incremental \
77  mark.prepare_code_flush \
78  mark.roots \
79  mark.weak_closure \
80  sweep \
81  sweep.code \
82  sweep.map \
83  sweep.old \
84  incremental_finalize \
85"
86
87BASE_DIR=$(dirname $0)
88
89case $OP in
90  new-gen-rank)
91    cat $LOGFILE | grep "gc=s" \
92      | $BASE_DIR/eval_gc_nvp.py \
93      --no-histogram \
94      --rank $RANK_MODE \
95      ${INTERESTING_NEW_GEN_KEYS}
96    ;;
97  old-gen-rank)
98    cat $LOGFILE | grep "gc=ms" | grep "reduce_memory=0" | grep -v "steps=0" \
99      | $BASE_DIR/eval_gc_nvp.py \
100      --no-histogram \
101      --rank $RANK_MODE \
102      ${INTERESTING_OLD_GEN_KEYS}
103    ;;
104  *)
105    ;;
106esac
107
108