GitHub - jkool702/timep: `timep` 是一个用于 bash 代码的高效且准确的基于陷阱的先进分析器和火焰图生成器。`timep` 所做的远不止“提供每个命令的执行时间”——它为 bash 代码映射了完整的调用栈树...

主要观点timep是用于 bash 代码的高效且先进的基于陷阱的时间分析器,可生成命令执行时间分析、调用栈跟踪及火焰图等输出。
关键信息

  • 利用 bash DEBUG 陷阱记录开始/结束时间戳及嵌套元数据,通过后处理生成输出。
  • 可通过不同参数控制行为,如-f-s-c指定输入类型,-k保留中间文件,-t通过time内置命令运行代码等。
  • 输出包括 2 个时间分析文件、2 个用于生成火焰图的堆栈跟踪文件及 2 个火焰图 SVG 文件,默认保存到/dev/shm/.timep/timep-XXXXXXXX的“profiles”目录,并在当前目录创建链接。
    重要细节
  • DEBUG 陷阱在$BASH_COMMAND命令运行前触发,记录上一个命令;EXIT 和 RETURN 陷阱会触发 DEBUG 陷阱记录子 shell/函数中的最后一个命令。
  • 处理嵌套子 shell 和后台 fork 时,需确保正确记录和合并命令及元数据。
  • 已知问题包括在某些情况下生成的分析结果略有偏差,如在进程替换、深层嵌套子 shell 等场景下。

示例代码展示了如何使用timep对函数进行时间分析,输出详细展示了每个命令的执行时间、嵌套信息等。

阅读 170
0 条评论