};
std::vector<Scenario> scenarios{
- Scenario{512, 65536, 0.8, 0.6, 0.1, 3},
- Scenario{512, 65536, 0.9, 0.7, 0.0, 3},
- Scenario{512, 65536, 0.9, 0.7, 0.1, 3},
- Scenario{512, 65536, 0.8, 0.6, 0.5, 3},
- Scenario{512, 65536, 0.9, 0.7, 0.5, 3},
- Scenario{1024, 65536, 0.8, 0.6, 0.1, 3},
- Scenario{1024, 65536, 0.9, 0.7, 0.0, 3},
- Scenario{1024, 65536, 0.9, 0.7, 0.1, 3},
+ Scenario{512, 65536, 0.8, 0.6, 0.1, 3},
+ Scenario{512, 65536, 0.9, 0.7, 0.0, 3},
+ Scenario{512, 65536, 0.9, 0.7, 0.1, 3},
+ Scenario{512, 65536, 0.8, 0.6, 0.5, 3},
+ Scenario{512, 65536, 0.9, 0.7, 0.5, 3},
+ Scenario{1024, 65536, 0.8, 0.6, 0.1, 3},
+ Scenario{1024, 65536, 0.9, 0.7, 0.0, 3},
+ Scenario{1024, 65536, 0.9, 0.7, 0.1, 3},
Scenario{1024*2, 65536, 0.8, 0.6, 0.3, 3},
Scenario{1024*2, 65536, 0.9, 0.7, 0.0, 3},
- Scenario{1024*2, 65536, 0.9, 0.7, 0.3, 3}
+ Scenario{1024*2, 65536, 0.9, 0.7, 0.3, 3},
+ Scenario{512, 65536/16, 0.8, 0.6, 0.1, 3},
+ Scenario{512, 65536/16, 0.9, 0.7, 0.0, 3},
+ Scenario{512, 65536/16, 0.9, 0.7, 0.1, 3},
+ Scenario{512, 65536/16, 0.8, 0.6, 0.5, 3},
+ Scenario{512, 65536/16, 0.9, 0.7, 0.5, 3},
+ Scenario{1024, 65536/16, 0.8, 0.6, 0.1, 3},
+ Scenario{1024, 65536/16, 0.9, 0.7, 0.0, 3},
+ Scenario{1024, 65536/16, 0.9, 0.7, 0.1, 3},
+ Scenario{1024*2, 65536/16, 0.8, 0.6, 0.3, 3},
+ Scenario{1024*2, 65536/16, 0.9, 0.7, 0.0, 3},
+ Scenario{1024*2, 65536/16, 0.9, 0.7, 0.3, 3}
};
void PrintTo(const Scenario& s, ::std::ostream* os)
double fragmented_percent = 0;
double fragments_count = 0;
double time = 0;
+ double frag_score = 0;
};
std::map<std::string, test_result> results_per_allocator;
r.fragmented_percent += 100.0 * fragmented / allocs;
r.fragments_count += ( fragmented != 0 ? double(fragments) / fragmented : 2 );
r.time += ceph_clock_now() - start;
+ r.frag_score += frag_score;
}
void AllocTest::TearDownTestCase() {
std::cout << r.first <<
" fragmented allocs=" << r.second.fragmented_percent / r.second.tests_cnt << "%" <<
" #frags=" << r.second.fragments_count / r.second.tests_cnt <<
+ " free_score=" << r.second.frag_score / r.second.tests_cnt <<
" time=" << r.second.time * 1000 << "ms" << std::endl;
}
}
std::cout << std::endl;
boost::uniform_int<> D(1, max_object_size / s.alloc_unit);
+ uint32_t object_size = 0;
+
auto size_generator = [&]() -> uint32_t {
- static uint32_t object_size = 0;
uint32_t c;
if (object_size == 0)
object_size = (uint32_t(D(rng))* s.alloc_unit);
INSTANTIATE_TEST_CASE_P(
Allocator,
AllocTest,
- ::testing::Values("stupid", "bitmap"));
+ ::testing::Values("stupid", "bitmap", "avl"));