- 更新于:2018 年 8 月 9 日
[TOC]
这个文档描述了 Fuchsia 基准测试结果必须遵守的 JSON 模式,只有这样才能将结果上传到性能面板上。
辅助库
如果你正创建一个可追踪的基准测试,你的导出结果会有正确的模式。
如果你正编写你自己的基准测试程序,那么你就可以使用现有的 Fuchsia 库用于你自己的编程语言用于放出 JSON 数据:
注意:如果你的基准测试使用不同的语言,请提供一个可用库,或者添加一个 bug 用于请求添加一个该语言的辅助库。
JSON 描述
[
{
"label": string // 在性能显示面板中的测试用例名字
"test_suite": string // 在性能面板中的测试包名字
"unit": string // 其中一个支持单元(参考下面)
"values": [v1, v2..] // 在这个测试用例中几个要收集的值
"split_first": bool // 是否要将 [values] 中的第一个值和其余的分开
},
{
...
}
]
支持单元
为了将基准测试结果转换成性能信息显示面板要求格式,unit
必须是下面字符串之一,这些字符串描述了测试单元的结果的 values
。
nanoseconds
orns
milliseconds
orms
bytes/second
bytes
例子
[
{
"label": "Channel/WriteRead/64bytes",
"test_suite": "fuchsia.zircon_benchmarks",
"unit": "nanoseconds",
"values": [105.45, 697.916667, 672.743056],
"split_first": true
},
{
"label":"Channel/WriteRead/1024bytes",
"test_suite":"fuchsia.zircon_benchmarks",
"unit":"nanoseconds",
"values":[102.23, 1004.340278, 906.250000],
"split_first": true
}
]
split_first 的作用
当测试结果中第一个值由于外部的影响(比如空缓存)影响准确性时,split_first
参数就非常有用了。当该参数取值 true
,基准测试结果会在性能显示面板以两个单独的序列出现。
$label/samples_0_to_0
追踪values
中第一个元素。$label/samples_1_to_N
追踪剩余的values
。
Comments