美文网首页perfetto 官方文档翻译
Perfetto 翻译-trace分析-PerfettoSQL

Perfetto 翻译-trace分析-PerfettoSQL

作者: David_zhou | 来源:发表于2023-11-06 09:49 被阅读0次

    前言:虽然有翻译软件,虽然有chatgpt,毕竟语言隔阂,对这个工具还是一知半解,因此想通过翻译的方式和大家来一起学习下Perfetto这个强大的工具

    目录

    #####################以下分割线#####################
    英文原文在这里

    PerfettoSQL 内置查询

    这些是内置于 C++ 中的函数,可减少需要用 SQL 编写的样板数量。

    Profile Functions
    STACK_FROM_STACK_PROFILE_FRAME
    STACK_FROM_STACK_PROFILE_FRAME(frame_id)
    

    描述 创建一个堆栈,其中仅包含引用的帧(对stack_profile_frame 表的引用 frame_id

    返回类型
    BYTES
    参数

    Argument论点 Type类型 Description描述
    frame_id StackProfileFrameTable::Id 堆栈配置文件框架表::Id reference to the stack_profile_frame table 对 stack_profile_frame 表的引用
    STACK_FROM_STACK_PROFILE_CALLSITE
    STACK_FROM_STACK_PROFILE_CALLSITE(callsite_id)
    

    通过获取 callsite_id (引用自 [stack_profile_callsite]](sql-tables.autogen#stack_profile_callsite) 表)并生成帧列表(通过遍历 [stack_profile_callsite]](sql-tables.autogen#stack_profile_callsite) 表)创建堆栈

    返回类型

    BYTES

    参数

    Argument Type Description
    callsite_id StackProfileCallsiteTable::Id reference to the [stack_profile_callsite]](sql-tables.autogen#stack_profile_callsite) table
    CAT_STACKS
    CAT_STACKS(([root [[,level_1 [, ...]], leaf]])
    

    描述
    通过连接其他堆栈来创建堆栈。还接受为其生成假 Frame 的 STRING 值。Null 值将被忽略。

    返回类型

    BYTES

    参数

    Argument Type Description
    root BYTES or STRING Stack or STRING for which a fake Frame is generated
    ... BYTES or STRING Stack or STRING for which a fake Frame is generated
    leaf BYTES or STRING Stack or STRING for which a fake Frame is generated
    EXPERIMENTAL_PROFILE
    EXPERIMENTAL_PROFILE(stack [,sample_type, sample_units, sample_value]*)
    

    描述

    聚合函数,用于从给定样本生成 pprof 格式的profile。

    返回类型

    BYTES (PPROF数据)

    参数

    Argument Type Description
    stack BYTES Stack or string for which a fake Frame is generated
    sample_type STRING Type of the sample value (e.g. size, time)
    sample_units STRING Units of the sample value (e.g. bytes, count)
    sample_value LONG Value for the sample

    可以指定多个样本。
    如果仅存在参数 stack ,则 "samples" "count" 和 1会当做sample_typesample_unitssample_value 的 默认值。

    示例

    CPU profile

    SELECT
      perf_session_id,
      EXPERIMENTAL_PROFILE(
        STACK_FROM_STACK_PROFILE_CALLSITE(callsite_id),
        'samples',
        'count',
        1) AS profile
    FROM perf_sample
    GROUP BY perf_session_id
    

    Heap profile

    SELECT
      EXPERIMENTAL_PROFILE(
        CAT_STACKS(heap_name, STACK_FROM_STACK_PROFILE_CALLSITE(callsite_id)),
        'count',
        'count',
        count,
        'size',
        'bytes',
        size) AS profile
    FROM heap_profile_allocation
    WHERE size >= 0 AND count >= 0
    

    #####################以上分割线#####################

    后记:
    1 本次主要使用百度翻译,虽然被骂,但至少翻译这个工具降低了门槛。
    2 英文文档中的长难句真的是又长又难,基于百度的翻译,然后自己再调整下,水平实在有限。
    3 技术背景知识不够,有些专有名词不知道怎么翻译,也不知道百度翻译的是否准确,功夫在诗外。
    4 万事开头难,中间难不难,还不知道。中间的事后面再说,正确一天翻译一篇。
    5 虽然可能会有人不屑,但总要有人去做不起眼的小事。
    6 google 厉害,这个perfetto 工具也很厉害。君子善假于物也。
    7 工具的使用是最简单的入门,背后还有更多的东西值得学习。
    8 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议

    相关文章

      网友评论

        本文标题:Perfetto 翻译-trace分析-PerfettoSQL

        本文链接:https://www.haomeiwen.com/subject/qaitwdtx.html