一键导入
cangjie-cjprof
仓颉性能分析工具 cjprof。当需要了解如何使用 cjprof 进行 CPU 热点函数采样(record)、生成性能报告和火焰图(report)、导出和分析堆内存(heap),包括采样频率设置、文本报告/火焰图生成、堆内存对象引用关系分析、仓颉线程栈查看等,应使用此 Skill。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
仓颉性能分析工具 cjprof。当需要了解如何使用 cjprof 进行 CPU 热点函数采样(record)、生成性能报告和火焰图(report)、导出和分析堆内存(heap),包括采样频率设置、文本报告/火焰图生成、堆内存对象引用关系分析、仓颉线程栈查看等,应使用此 Skill。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当需要构建鸿蒙应用项目时,使用此 Skill 执行构建流程。此 Skill 包含完整的构建命令、构建流程说明、构建失败处理流程。构建脚本会自动执行依赖安装、仓颉预编译、资源生成、编译、打包等步骤。
在鸿蒙应用(Cangjie)开发中,当需要使用 stdx 拓展库(如 crypto、encoding、net、log、actors 等),或在构建/链接阶段出现 stdx 相关错误时,使用此 Skill 获取/解压 stdx 包,并指导在 entry/cjpm.toml 中正确配置 bin-dependencies.path-option。
在进行仓颉工程或鸿蒙应用开发时的第一步,应该优先读取该SKILL,用来确定后续的开发步骤。
仓颉语言内置注解。当需要了解仓颉 SDK 提供的内置注解(@sourcePackage/@sourceFile/@sourceLine/@When/@FastNative/@Frozen/@Attribute/@Deprecated)的用途、语法和最优实践时,应使用此 Skill。
仓颉语言附录参考。当需要查阅仓颉语言的关键字列表、运算符优先级与结合性、运算符重载函数签名、运行时环境变量配置、包兼容性规则、TokenKind枚举类型时,应使用此 Skill。
仓颉标准库 Array 类型详细指南。当需要了解 Array 的构造、元素访问、切片、拼接、查找、排序、拷贝、反转、映射、扁平化等操作的完整 API 和用法时,应使用此 Skill。
| name | cangjie-cjprof |
| description | 仓颉性能分析工具 cjprof。当需要了解如何使用 cjprof 进行 CPU 热点函数采样(record)、生成性能报告和火焰图(report)、导出和分析堆内存(heap),包括采样频率设置、文本报告/火焰图生成、堆内存对象引用关系分析、仓颉线程栈查看等,应使用此 Skill。 |
cjprof(Cangjie Profile)是仓颉语言的性能分析工具,支持 CPU 热点函数采样分析和堆内存分析。仅支持 Linux 系统。
权限要求:
cjprof record需要root/sudo权限,或系统perf_event_paranoid配置为-1。
# 采样正在运行的进程
cjprof record -f 10000 -p 12345 -o sample.data
# 启动新程序并采样
cjprof record -f max -- ./test arg1 arg2
| 选项 | 说明 |
|---|---|
-f / --freq <freq> | 采样频率(Hz),默认 5000,max 取系统最大值 |
-o / --output <file> | 输出文件名(默认 cjprof.data) |
-p / --pid <pid> | 指定进程 ID |
采样过程中按
Ctrl+C可提前结束。
# 文本报告
cjprof report -i sample.data
# 火焰图
cjprof report -F -i sample.data -o flame.svg
| 选项 | 说明 |
|---|---|
-F / --flame-graph | 生成火焰图(SVG) |
-i / --input <file> | 输入数据文件(默认 cjprof.data) |
-o / --output <file> | 火焰图输出文件(默认 FlameGraph.svg) |
报告说明:
cjprof heap -d 12345 -o heap.data # 导出进程 12345 的堆内存
导出会向进程发送
SIG_USR1信号,需确认目标为仓颉程序。
cjprof heap -i heap.data
输出各对象类型的实例数、浅堆大小、深堆大小:
Object Type Objects Shallow Heap Retained Heap
==================== ============= ============= =============
AAA 1 80 400
BBB 4 32 196
cjprof heap --show-thread
# 查看 AAA 和 BBB 的引用关系(引用了哪些对象)
cjprof heap --show-reference="AAA;BBB"
# 查看 CCC 的被引用关系(被哪些对象引用)
cjprof heap --show-reference="CCC" --incoming-reference
# 限制展示深度
cjprof heap --show-reference --depth 5
| 选项 | 说明 |
|---|---|
-d / --dump <pid> | 导出指定进程的堆内存 |
-i / --input <file> | 分析的堆数据文件(默认 cjprof.data) |
-o / --output <file> | 导出的堆数据文件(默认 cjprof.data) |
--show-reference[=<names>] | 展示对象引用关系(; 分隔多个对象名) |
--incoming-reference | 展示被引用关系(需配合 --show-reference) |
-D / --depth <n> | 引用关系最大展示深度(默认 10) |
-t / --show-thread | 展示仓颉线程栈及栈中引用的对象 |
-V / --verbose | 打印解析日志 |