allocPool/main.cpp

40 lines
1.3 KiB
C++

#include <chrono>
#include <iostream>
#include "tests.hpp"
int main() {
tests t;
t.runTests();
auto startSlow{std::chrono::high_resolution_clock::now()};
stub *ptr{};
for (size_t i{}; i < 10000; i++) {
ptr = new stub();
delete ptr;
}
auto endSlow{std::chrono::high_resolution_clock::now()};
std::cout << "Time (milliseconds) required for allocations without pool: " <<
std::chrono::duration_cast<std::chrono::milliseconds>(endSlow - startSlow).count() << "\n";
auto startAlloc{std::chrono::high_resolution_clock::now()};
allocPool<stub> a(10000);
auto endAlloc{std::chrono::high_resolution_clock::now()};
auto startFast{std::chrono::high_resolution_clock::now()};
for (size_t i{}; i < 10000; i++) {
ptr = a.getPtr();
a.returnPtr(ptr);
}
auto endFast{std::chrono::high_resolution_clock::now()};
std::cout << "Time (milliseconds) required for allocations with pool: " <<
std::chrono::duration_cast<std::chrono::milliseconds>(endFast - startFast).count() << "\n";
std::cout << "Time (milliseconds) required for real allocations when constructing pool: " <<
std::chrono::duration_cast<std::chrono::milliseconds>(endAlloc - startAlloc).count() << "\n";
return 0;
}