in cpp/src/main.cpp [75:135]
int main(int argc, char **argv) {
job_profile::add("cpc-sketch-timing", job_profile_ptr(new cpc_sketch_timing_profile()));
job_profile::add("cpc-union-timing", job_profile_ptr(new cpc_union_timing_profile()));
job_profile::add("hll-sketch-timing", job_profile_ptr(new hll_sketch_timing_profile()));
job_profile::add("hll-union-timing", job_profile_ptr(new hll_union_timing_profile()));
job_profile::add("theta-sketch-timing", job_profile_ptr(new theta_sketch_timing_profile()));
job_profile::add("theta-union-timing", job_profile_ptr(new theta_union_timing_profile()));
job_profile::add("tuple-sketch-timing", job_profile_ptr(new tuple_sketch_timing_profile()));
job_profile::add("tuple-union-timing", job_profile_ptr(new tuple_union_timing_profile()));
job_profile::add("kll-sketch-timing-float", job_profile_ptr(new kll_sketch_timing_profile<float>()));
job_profile::add("kll-sketch-timing-string", job_profile_ptr(new kll_sketch_timing_profile<std::string>()));
job_profile::add("kll-merge-timing-float", job_profile_ptr(new kll_merge_timing_profile<float>()));
job_profile::add("kll-merge-timing-string", job_profile_ptr(new kll_merge_timing_profile<std::string>()));
job_profile::add("fi-sketch-timing", job_profile_ptr(new frequent_items_sketch_timing_profile()));
job_profile::add("fi-merge-timing", job_profile_ptr(new frequent_items_merge_timing_profile()));
job_profile::add("req-sketch-timing-float", job_profile_ptr(new req_sketch_timing_profile<float>()));
job_profile::add("req-merge-timing-float", job_profile_ptr(new req_merge_timing_profile<float>()));
job_profile::add("req-sketch-timing-double", job_profile_ptr(new req_sketch_timing_profile<double>()));
job_profile::add("cpc-sketch-accuracy", job_profile_ptr(new cpc_sketch_accuracy_profile()));
job_profile::add("cpc-union-accuracy", job_profile_ptr(new cpc_union_accuracy_profile()));
job_profile::add("hll-sketch-accuracy", job_profile_ptr(new hll_sketch_accuracy_profile()));
job_profile::add("hll-union-accuracy", job_profile_ptr(new hll_union_accuracy_profile()));
job_profile::add("theta-sketch-accuracy", job_profile_ptr(new theta_sketch_accuracy_profile()));
job_profile::add("theta-union-accuracy", job_profile_ptr(new theta_union_accuracy_profile()));
job_profile::add("kll-sketch-accuracy", job_profile_ptr(new kll_sketch_accuracy_profile()));
job_profile::add("kll-merge-accuracy", job_profile_ptr(new kll_merge_accuracy_profile()));
job_profile::add("fi-sketch-accuracy", job_profile_ptr(new frequent_items_sketch_accuracy_profile()));
job_profile::add("req-error-vs-rank-double", job_profile_ptr(new req_error_vs_rank_profile<double>()));
job_profile::add("tdigest-timing-double", job_profile_ptr(new tdigest_timing_profile<double>()));
job_profile::add("tdigest-sketch-accuracy-double", job_profile_ptr(new tdigest_sketch_accuracy_profile<double>()));
job_profile::add("tdigest-merge-accuracy-double", job_profile_ptr(new tdigest_merge_accuracy_profile<double>()));
job_profile::add("tdigest-timing-float", job_profile_ptr(new tdigest_timing_profile<float>()));
job_profile::add("tdigest-sketch-accuracy-float", job_profile_ptr(new tdigest_sketch_accuracy_profile<float>()));
job_profile::add("tdigest-merge-accuracy-float", job_profile_ptr(new tdigest_merge_accuracy_profile<float>()));
job_profile::add("tdigest-memory-float", job_profile_ptr(new tdigest_memory_profile<float>()));
job_profile::add("tdigest-memory-double", job_profile_ptr(new tdigest_memory_profile<double>()));
job_profile::add("cpc-sketch-memory", job_profile_ptr(new cpc_sketch_memory_profile()));
job_profile::add("hll-sketch-memory", job_profile_ptr(new hll_sketch_memory_profile()));
job_profile::add("theta-sketch-memory", job_profile_ptr(new theta_sketch_memory_profile()));
job_profile::add("kll-sketch-memory-float", job_profile_ptr(new kll_sketch_memory_profile<float>()));
job_profile::add("kll-sketch-memory-int64", job_profile_ptr(new kll_sketch_memory_profile<int64_t>()));
job_profile::add("hll-cross-lang", job_profile_ptr(new hll_cross_language_profile()));
if (argc == 2) {
datasketches::job_profile& profile = datasketches::job_profile::instance(argv[1]);
profile.run();
} else {
std::cerr << "One parameter expected: profile name" << std::endl;
std::cerr << "Known profiles:" << std::endl;
std::vector<std::string> profile_names = job_profile::get_profile_names();
for (std::string& name : profile_names) {
std::cerr << "\t" << name << std::endl;
}
}
return 0;
}