本目录提供所有实验程序共享的数据生成逻辑,避免每个程序各自重复实现。
data_gen.h提供统一的数据生成接口:
// 构造标准 TableSchema(基线:2 TAG + N FIELD,涵盖 INT32/INT64/FLOAT/DOUBLE) std::shared_ptr<storage::TableSchema> make_bench_schema(int n_field_cols, CompressionType comp = SNAPPY); // 向 TsFileTableWriter 写入 total_rows 行(batch_size 行一批) // devices 个设备,每设备数据顺序写入 int write_bench_data(storage::TsFileTableWriter* writer, int n_devices, int64_t total_rows, uint32_t batch_size);
bench_utils.h// 高精度计时器包装 struct Timer { void start(); double elapsed_sec(); }; // CSV 输出工具 struct CsvWriter { void write_header(const std::vector<std::string>& cols); void write_row(const std::vector<std::string>& vals); }; // 打印构建配置(SIMD/THREADS 开关) void print_build_config();
详见 ../plan.md 第 4 节。各实验在此基础上只修改自己关注的变量。