本文介绍了Valida zkVM的性能基准分析工具,该工具用于持续监控Valida zkVM的性能,通过分析CI pipeline的基准测试结果,检测性能衰退、量化优化效果和分析Valida的执行时间和内存使用情况的缩放行为。文章还介绍了该工具的工作原理、分析步骤以及未来的增强计划,旨在为开发者和用户提供对实际性能特征的可见性。
2025年5月27日
性能跟踪对于 zkVM 来说绝对至关重要,因为执行时间和内存使用直接决定了证明对于实际应用是否仍然实用。即使看似微小的回归,在扩展到生产工作负载时,也可能像滚雪球一样变成巨大的开销。我们的基准分析工具通过在检测到回归或优化机会时,能够有针对性地进行改进和快速修复,从而确保 Valida 保持可预测的、优化的性能。
通过持续监控这些关键指标,我们防止小的低效率累积成主要的瓶颈,从而使 zkVM 在其整个运行范围内保持高性能。这种严格的性能管理方法使我们能够在保持实现新功能和优化的灵活性的同时,提供一致的证明生成时间。
为了系统地监控 Valida zkVM 的性能,我们开发了一个基准分析工具,这是一个 Nim 程序,用于处理来自我们的 CI 流水线的基准测试结果。
这个工具有助于我们:
该分析器使用了 Sebastian 在攻读博士学位期间编写的许多 Nim 库,这些库涉及大量的绘图、数据帧、曲线拟合等等。
输入:来自 CI 的基准数据
我们的基准 CI 在每个 pull request 上运行,在 Valida zkVM 上执行一套程序(用 C 和 Rust 编写)。这些包括:
每个基准测试运行多次(默认:30 次迭代,对于长时间运行的程序则较少),并且 CI 输出一个 CSV 文件,其中包含每次运行的执行时间和内存使用情况:
此外,我们还记录 trace size (zkVM 性能分析的关键)。
聚合统计
计算最小值/最大值、平均值/中位数、标准差
检测异常值(默认:>3σ 偏离平均值)以标记异常情况(例如,云资源争用)
缩放分析
绘制执行时间/内存与 trace size 的关系图
拟合对数线性函数 (f(x) = a·x·ln(x) + b·x + c) 以模拟 Valida 的性能缩放:
运行间比较
比较两个基准测试结果(例如,PR 与主分支)
高亮显示平均值/中位数性能和异常值的变化:
示例输出
随着我们不断发展我们的基准测试系统,我们计划进行几项关键增强,以便更深入地了解 Valida 的性能特征:
→ 揭示添加更多计算资源是否如预期的那样实际减少了运行时间
→ 能够与其他 zkVM 进行 apples-to-apples 的比较
→ 为大规模部署提供真实的运营成本洞察
→ 为我们的客户和社区提供透明的性能跟踪
这些增强功能将使 Valida 拥有 zkVM 领域最全面的基准测试系统之一,为开发人员和用户提供对实际性能特性的无与伦比的可见性。这些数据不仅有助于优化 Valida 本身,还有助于为整个 zkVM 生态系统建立有意义的基准测试工具和标准。
尝试一下
该工具是开源的:github.com/lita-xyz/benchmark-analyzer。欢迎投稿!
- 原文链接: lita.foundation/blog/ben...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!