const char* kTestName = "InsDelFind";
// Run GC after "kGCFrequency" operations.
const size_t kGCFrequency = 3000;
+const size_t kLeapfrogGCFrequency = 1500;
const size_t kCrudeMapSize = 10000;
const size_t kCrudePassCount = 40000;
typedef junction::ConcurrentMap_Crude<size_t, size_t> CrudeMap;
template <typename Map>
-void run_crude_map(size_t map_size, size_t pass_count, const char* bench_name) {
+void run_crude_map(size_t map_size, size_t pass_count, const char* bench_name,
+ size_t gc_frequency) {
std::cout << "[ RUN ] " << kTestName << "." << bench_name << "\n";
auto start_time = std::chrono::system_clock::now();
// std::cout << "Erased" << i << "\n";
}
}
- if (++nOperations > kGCFrequency) {
+ if (++nOperations > gc_frequency) {
junction::DefaultQSBR.update(qsbrContext);
nOperations = 0;
}
}
template <typename Map>
-void run_test(size_t map_size, size_t pass_count, const char* bench_name) {
+void run_test(size_t map_size, size_t pass_count, const char* bench_name,
+ size_t gc_frequency) {
std::cout << "[ RUN ] " << kTestName << "." << bench_name << "\n";
auto start_time = std::chrono::system_clock::now();
// std::cout << "Erased" << i << "\n";
}
}
- if (++nOperations > kGCFrequency) {
+ if (++nOperations > gc_frequency) {
junction::DefaultQSBR.update(qsbrContext);
nOperations = 0;
}
}
int main() {
- run_test<LinearMap>(kLinearMapSize, kLinearPassCount, kLinearBenchmarkName);
- run_test<LeapfrogMap>(kLeapfrogMapSize, kLeapfrogPassCount, kLeapfrogBenchmarkName);
- run_test<GrampaMap>(kGrampaMapSize, kGrampaPassCount, kGrampaBenchmarkName);
- run_crude_map<CrudeMap>(kCrudeMapSize, kCrudePassCount, kCrudeBenchmarkName);
+ run_test<LeapfrogMap>(kLeapfrogMapSize, kLeapfrogPassCount,
+ kLeapfrogBenchmarkName, kLeapfrogGCFrequency );
+ run_test<LinearMap>(kLinearMapSize, kLinearPassCount, kLinearBenchmarkName,
+ kGCFrequency);
+ run_test<GrampaMap>(kGrampaMapSize, kGrampaPassCount, kGrampaBenchmarkName,
+ kGCFrequency);
+ run_crude_map<CrudeMap>(kCrudeMapSize, kCrudePassCount, kCrudeBenchmarkName,
+ kGCFrequency);
return 0;
}