// 记录基线
let summary = @lib.StatisticalSummary::new().add(100L).add(200L)
let store = @lib.BaselineStore::new().add("compute_task", summary)
// 检测退化(阈值 110%)
let detector = @lib.RegressionDetector::new(store, 110)
let current = @lib.StatisticalSummary::new().add(180L)
match detector.detect("compute_task", current) {
Some(r) => if r.is_regression() { println("性能退化!") }
None => println("无基线数据")
}
Span 嵌套阶段计时
let parent = @lib.Span::new("request_handler").start()
let child = @lib.Span::new("db_query").start()
let child = child.stop()
let parent = parent.add_child(child).stop()
parent.total_elapsed_nanos() // 含子树累计
PhaseTimer 连续阶段计时
let pt = @lib.PhaseTimer::new()
.begin_phase("receive")
.begin_phase("process") // 自动结束 receive
.begin_phase("respond") // 自动结束 process
.end_phase()
pt.phases().length() // → 3
pt.total_elapsed_nanos()
moon run examples/basic_usage
moon run examples/lap_demo
moon run examples/bench_demo
moon run examples/async_timer_demo
moon run examples/span_demo
moon run examples/regression_demo
moon run demo
开发
# 构建
moon build
# 测试
moon test
# 命令行工具
moon run src/cli -- --demo
moonbit-observe
一个轻量级、高性能的运行时计时与指标观测 SDK,使用 MoonBit 语言构建。支持精确计时、分段计时(Lap)、暂停/恢复、基准测试和JSON导出等功能。
项目简介
moonbit-observe 是面向 MoonBit 生态原创开发的通用运行时计时器与指标观测工具库。
当前生态缺少开箱即用、支持分段打点的标准化观测组件。开发者在业务程序、脚本、服务中进行耗时观测时,只能手动编写临时计时代码,缺少多阶段打点、异步任务计时、人性化时间格式化等能力。
本项目核心定位为运行时埋点计时观测工具,服务应用开发过程中多阶段耗时统计、流程耗时观测;简易基准测试能力仅作为附属可选功能,并非项目核心。
库完全基于 MoonBit 标准库构建,无重型外部依赖,可直接作为公共依赖引入任意 MoonBit 项目;同时提供 feature 开关,可选接入 moonbitlang/async 生态实现异步计时。
核心功能范围
moonbitlang/async,提供异步任务专用计时 API(条件编译可选特性);快速开始
API 概览
核心类型
Stopwatch分段记录
LapRecord基准测试
格式化函数
异步计时
AsyncTimer统计引擎
基线持久化 & 退化检测
Span 嵌套阶段计时
PhaseTimer 连续阶段计时
报告器系统
ReporterConsoleReporter(控制台输出)
JsonReporter(JSON 序列化)
Snapshot(快照 — 时间点状态捕获)
CompositeReporter(多路输出)
完整示例
运行示例:
开发
许可证
MIT © 2026 668xin