MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / bench_alloc_large

Function bench_alloc_large

3rd/mimalloc-2.0.9/test/main-override.cpp:319–342  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

317#include <iostream>
318
319static void bench_alloc_large(void) {
320 static constexpr int kNumBuffers = 20;
321 static constexpr size_t kMinBufferSize = 5 * 1024 * 1024;
322 static constexpr size_t kMaxBufferSize = 25 * 1024 * 1024;
323 std::unique_ptr<char[]> buffers[kNumBuffers];
324
325 std::random_device rd;
326 std::mt19937 gen(42); //rd());
327 std::uniform_int_distribution<> size_distribution(kMinBufferSize, kMaxBufferSize);
328 std::uniform_int_distribution<> buf_number_distribution(0, kNumBuffers - 1);
329
330 static constexpr int kNumIterations = 2000;
331 const auto start = std::chrono::steady_clock::now();
332 for (int i = 0; i < kNumIterations; ++i) {
333 int buffer_idx = buf_number_distribution(gen);
334 size_t new_size = size_distribution(gen);
335 buffers[buffer_idx] = std::make_unique<char[]>(new_size);
336 }
337 const auto end = std::chrono::steady_clock::now();
338 const auto num_ms = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
339 const auto us_per_allocation = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count() / kNumIterations;
340 std::cout << kNumIterations << " allocations Done in " << num_ms << "ms." << std::endl;
341 std::cout << "Avg " << us_per_allocation << " us per allocation" << std::endl;
342}
343

Callers 1

mainFunction · 0.85

Calls 1

countMethod · 0.45

Tested by

no test coverage detected