开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

script子命令

命令功能

读取数据文件,显示数据文件中的具体内容,适用于数据检查场景和数据调试场景。

命令格式

./devopt.sh script [-h] -i INPUT [-t {pmu,trace,memory,component}]

参数说明

表1 参数说明

参数

参数选项

说明

-h/--help

-

可选参数,获取帮助信息。

-i/--input

-

必选参数,指定数据文件。

-t/--type

pmu/trace/memory/component

可选参数,指定数据类型,默认值为pmu。
  • pmu:查看数据文件中的PMU(Performance Monitor Unit,性能监视单元)性能数据
  • trace:查看数据文件中的函数追踪数据
  • memory:查看数据文件中的内存分析数据
  • component:查看数据文件中的组件调用链路数据

使用示例

执行以下命令,查看script命令支持的功能信息:

./devopt.sh script -h

返回信息如下:

USAGE
  devopt.sh script [-h] -i INPUT [-t {pmu,trace,memory,component}]

DESCRIPTION
  Reads a data file and displays the original collected data.

OPTIONS
  -h, --help              
  Displays help information and exits.

  -i INPUT, --input INPUT 
  Specifies a data file.

  -t {pmu,trace,memory,component}, --type {pmu,trace,memory,component}
  Specifies the output data type. The value can be pmu, trace, memory or component. The default value is pmu.

EXAMPLES
  # View PMU data.
  devopt.sh script -i /home/output/devopt_pid_timestamp.rawdata
  # View memory data.
  devopt.sh script -t memory -i /home/output/devopt_pid_timestamp.rawdata
  # View component data.
  devopt.sh script -t component -i /home/output/devopt_pid_timestamp.rawdata

查看数据文件中的内存分析数据

1
./devopt.sh script -i devopt_3315674_20260513155321.rawdata -t memory

返回信息如下:

FS 1: 0x4009bc <-> 0x400bcc Type:SL CacheLineAddr:0x420040 Access Info: adjacent;+0x20/+0x24;4B/4B
    A: sum_a(void*)@/home/test/falsesharing_demo:32
    B: inc_b(void*)@/home/test/falsesharing_demo:59
表2 字段说明

字段

字段说明

FS

FS(False Sharing)表示该事件属于伪共享类型。

1

表示伪共享事件的排序序号,表示伪共享对的分析优先级。

0x4009bc、0x400bcc

访问缓存行的程序计数器地址。

Type

表示内存访问的类型。

  • SS(Store-Store)表示两次访问都是写操作。
  • SL(Store-Load)表示一次访问是写操作,一次访问是读操作。

CacheLineAddr

缓存行中发生伪共享问题的起始地址。

示例中的“0x420040”为发生伪共享问题的缓存行起始地址。

Access Info

内存访问信息,包括访问的缓存行地址是否相邻,偏移量和访问宽度。

  • “adjacent”表示两次访问缓存行的地址相邻。
  • “same-line”表示两次访问缓存行的地址不相邻。

示例中的“adjacent”表示两次访问缓存行的地址相邻,“+0x20/+0x24”表示两次访问的偏移量为“+0x20”和“+0x24”,“4B/4B”表示两次访问的宽度都是4字节。

A、32

第一个程序计数器地址对应的函数名和源码行数。

示例中的“A”和“32”表示第一个程序计数器地址(0x4009bc)对应函数名和源码行数。

B、59

第二个程序计数器地址对应的函数名和源码行数。

示例中的“B”和“59”表示第二个程序计数器地址(0x400bcc)对应函数名和源码行数。