5 个版本
0.1.4 | 2022年10月21日 |
---|---|
0.1.3 | 2022年9月20日 |
0.1.2 | 2022年7月4日 |
0.1.1 | 2022年7月2日 |
0.1.0 | 2022年6月16日 |
#294 在 性能分析 中
26KB
566 代码行
big_o
推断渐近计算复杂度。
big_o
通过检查测量数据(例如执行时间、内存消耗等)来帮助估计算法的计算复杂度。用户应提供测量数据,big_o
将尝试拟合一组复杂度模型并返回最佳拟合。
示例
use assert_approx_eq::assert_approx_eq;
// f(x) = gain * x ^ 2 + offset
let data = vec![(1., 1.), (2., 4.), (3., 9.), (4., 16.)];
let (complexity, _all) = big_o::infer_complexity(data).unwrap();
assert_eq!(complexity.name, big_o::Name::Quadratic);
assert_eq!(complexity.notation, "O(n^2)");
assert_approx_eq!(complexity.params.gain.unwrap(), 1.0, 1e-6);
assert_approx_eq!(complexity.params.offset.unwrap(), 0.0, 1e-6);
assert!(complexity.rank < big_o::complexity("O(n^3)").unwrap().rank);
依赖项
~3MB
~58K SLoC