1#!/bin/bash 2# Copyright (c) 2021 Huawei Device Co., Ltd. 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14# 使用示例 ./perf.sh ~/SourceData/ftrace_small.txt ~/SourceData/3.svg 15set -e 16# 导出火焰图 17if [ "$#" -ne "2" ];then 18 echo "使用示例 ./huoyantu.sh ~/SourceData/ftrace_small.txt ~/SourceData/3.svg" 19 exit 20fi 21if [ ! -d "../FlameGraph" ];then 22 cd .. 23 git clone https://github.com/brendangregg/FlameGraph.git 24 cd - 25fi 26if [ ! -f "./out/linux_debug/trace_streamer" ];then 27 echo "need out/linux_debug/trace_streamer file" 28 exit 29fi 30source=$1 31dst=$2 32sudo perf record -g -F 99 -- ./out/linux_debug/trace_streamer $source -e /tmp/1.db 33sudo perf script -i perf.data > out.perf 34../FlameGraph/stackcollapse-perf.pl out.perf > out.floded 35../FlameGraph/flamegraph.pl out.floded > $dst