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