| 175 | } |
| 176 | |
| 177 | int main(int argc, char** argv) { |
| 178 | Config config; |
| 179 | try { |
| 180 | config = parseArgs(argc, argv); |
| 181 | } catch (const std::exception& e) { |
| 182 | std::cerr << e.what() << "\n"; |
| 183 | usage(argv[0]); |
| 184 | return 1; |
| 185 | } |
| 186 | |
| 187 | std::cout << "target_seconds,actual_seconds,total_writes,threads,writes_per_sec,db_path\n"; |
| 188 | for (const auto threads : config.threadCounts) { |
| 189 | const auto result = runCase(config, threads); |
| 190 | const auto writesPerSec = static_cast<double>(result.totalWrites) / result.seconds; |
| 191 | std::cout << config.seconds << "," << result.seconds << "," << result.totalWrites << "," |
| 192 | << threads << "," << writesPerSec << "," << result.dbPath << "\n"; |
| 193 | } |
| 194 | } |