From 86ff4351e25b8f09dc80b669ad93ce28646ab9c7 Mon Sep 17 00:00:00 2001 From: Peizhao Ou Date: Thu, 1 Feb 2018 13:29:55 -0800 Subject: [PATCH 1/1] Leapfrog uses more frequent GC --- test/junction_driver.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/test/junction_driver.cpp b/test/junction_driver.cpp index 62b9d62..1609297 100644 --- a/test/junction_driver.cpp +++ b/test/junction_driver.cpp @@ -13,6 +13,7 @@ const unsigned s_nInsertPercentage = 10; 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; @@ -38,7 +39,8 @@ typedef junction::ConcurrentMap_Leapfrog LeapfrogMap; typedef junction::ConcurrentMap_Crude CrudeMap; template -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(); @@ -73,7 +75,7 @@ void run_crude_map(size_t map_size, size_t pass_count, const char* bench_name) { // std::cout << "Erased" << i << "\n"; } } - if (++nOperations > kGCFrequency) { + if (++nOperations > gc_frequency) { junction::DefaultQSBR.update(qsbrContext); nOperations = 0; } @@ -97,7 +99,8 @@ void run_crude_map(size_t map_size, size_t pass_count, const char* bench_name) { } template -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(); @@ -135,7 +138,7 @@ void run_test(size_t map_size, size_t pass_count, const char* bench_name) { // std::cout << "Erased" << i << "\n"; } } - if (++nOperations > kGCFrequency) { + if (++nOperations > gc_frequency) { junction::DefaultQSBR.update(qsbrContext); nOperations = 0; } @@ -158,9 +161,13 @@ void run_test(size_t map_size, size_t pass_count, const char* bench_name) { } int main() { - run_test(kLinearMapSize, kLinearPassCount, kLinearBenchmarkName); - run_test(kLeapfrogMapSize, kLeapfrogPassCount, kLeapfrogBenchmarkName); - run_test(kGrampaMapSize, kGrampaPassCount, kGrampaBenchmarkName); - run_crude_map(kCrudeMapSize, kCrudePassCount, kCrudeBenchmarkName); + run_test(kLeapfrogMapSize, kLeapfrogPassCount, + kLeapfrogBenchmarkName, kLeapfrogGCFrequency ); + run_test(kLinearMapSize, kLinearPassCount, kLinearBenchmarkName, + kGCFrequency); + run_test(kGrampaMapSize, kGrampaPassCount, kGrampaBenchmarkName, + kGCFrequency); + run_crude_map(kCrudeMapSize, kCrudePassCount, kCrudeBenchmarkName, + kGCFrequency); return 0; } -- 2.34.1