[ox/std] Remove SmallMap dtor, replace timing code with steady_clock

This commit is contained in:
2024-05-25 00:47:49 -05:00
parent 3b18869665
commit 407e54246f
2 changed files with 7 additions and 14 deletions

View File

@@ -18,12 +18,12 @@
#include <ox/std/std.hpp>
[[nodiscard]]
static uint64_t nowMs() {
static uint64_t steadyNowMs() {
#if __has_include(<chrono>)
using namespace std::chrono;
return static_cast<uint64_t>(
duration_cast<milliseconds>(
system_clock::now().time_since_epoch()).count());
steady_clock::now().time_since_epoch()).count());
#else
return 0;
#endif
@@ -41,13 +41,13 @@ uint64_t timeMapStrToUuid(int elemCnt, int lookups, uint64_t seed = 4321) noexce
auto const keys = map.keys();
ox::Random rand;
// start
auto const startTime = nowMs();
auto const startTime = steadyNowMs();
for (int i = 0; i < lookups; ++i) {
auto const&k = keys[rand.gen() % keys.size()];
map[k];
oxExpect(map[k], ox::UUID::fromString(k).unwrap());
}
return nowMs() - startTime;
return steadyNowMs() - startTime;
}
template<typename Map = ox::SmallMap<ox::UUID, ox::String>>
@@ -62,16 +62,16 @@ uint64_t timeMapUuidToStr(int elemCnt, int lookups, uint64_t seed = 4321) noexce
auto const keys = map.keys();
ox::Random rand;
// start
auto const startTime = nowMs();
auto const startTime = steadyNowMs();
for (int i = 0; i < lookups; ++i) {
auto const&k = keys[rand.gen() % keys.size()];
oxExpect(map[k], k.toString());
}
return nowMs() - startTime;
return steadyNowMs() - startTime;
}
static ox::Error compareMaps(int lookupCnt = 1'000'000) {
auto const seed = nowMs();
auto const seed = steadyNowMs();
uint64_t hashTime{};
uint64_t smallTime{};
int elemCnt = 1;