perfetto 官方文档翻译

Perfetto 翻译-trace分析-PerfettoSQL

2023-11-06  本文已影响0人  David_zhou

前言:虽然有翻译软件,虽然有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 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议

上一篇 下一篇

猜你喜欢

热点阅读