Skip to content

通用工具详解(Timer / Stats)

本头文件内包含若干小工具,便于性能测量与简单统计:

Timer

  • 类名:Timer
  • 用途:记录起始时间,测量运行时间(秒)。
  • 接口:
  • Timer():构造时自动记录开始时间。
  • void reset():重置起始时间为当前时间。
  • double elapsed_seconds() const:返回从起始时间到现在的秒数(浮点)。

示例:

using namespace STAR_CPP;
Timer t;
// 运行一些工作
work();
std::cout << "elapsed: " << t.elapsed_seconds() << "s\n";

Stats

  • 结构体:Stats
  • 功能:在线添加样本并维护均值与无偏方差累计。
  • 接口:
  • void add(double x):添加一个样本。
  • double get_mean() const:返回当前样本均值。
  • double get_variance() const:返回样本方差(n>1 时为无偏方差,否则为 0)。

示例:

Stats s;
for (int i=0;i<1000;++i) s.add(rng.random());
std::cout << "mean=" << s.get_mean() << " var=" << s.get_variance() << '\n';

用途:

  • Timer + Stats 常用于基准测试:用 Timer 记录运行时间并用 Stats 汇总多个试验的统计结果。