Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////C++ Headers
- #include <array>
- using namespace std;
- #pragma region Benchmarking
- ////BenchMarking Header
- #include "Benchmark.h"
- static CPUBenchmark g_cb;
- static MemoryBenchmark g_mb;
- //#define PRINT_CPU(_STR_,_RESULT_,_VECT_SIZE_) printf_s( ""#_STR_"==>Tick: %llld, ==>Avrg Tick: %llld\n", _RESULT_, _RESULT_ / _VECT_SIZE_);
- #define _VECT_SIZE_ ARR_SIZE
- #define PRINT_CPU(_FN_) {printf_s(""#_FN_"\n");\
- g_cb.restart();\
- _FN_();\
- long long result=g_cb.stop();\
- printf_s("==>Tick: %llld\n==>Avrg: %.5lf\n", \
- result, double(result) / _VECT_SIZE_);}
- #define MEM_INFO_PRINT(...) {g_mb.recalculateMem(); printf_s("==>VMem: %.2lfMb\n==>PMem: %.2lfMb\n",\
- double(g_mb.getVMUsedByMe()) / 1024.0, double(g_mb.getPhysUsedByMe()) / 1024.0);}
- #pragma endregion
- const long long ARR_SIZE = 100 * 1000;
- void test_arr_without_init()
- {
- array<int, ARR_SIZE> arr;
- bool result = true;
- long i;
- for (i = 0; i < ARR_SIZE; i++)
- {
- arr[i] = i;
- }
- for (i = 0; i < ARR_SIZE && result; i++)
- {
- result &= arr[i] == i;
- }
- MEM_INFO_PRINT();
- }
- //i.e. no [] access,
- //According to Wiki [] is slower
- void test_arr_with_array_at()
- {
- array<int, ARR_SIZE> arr;
- bool result = true;
- long i;
- for (i = 0; i < ARR_SIZE; i++)
- {
- arr.at(i) = i;
- }
- for (i = 0; i < ARR_SIZE && result; i++)
- {
- result &= arr.at(i) == i;
- }
- MEM_INFO_PRINT();
- }
- void test_arr_with_init_array_at()
- {
- array<int, ARR_SIZE> arr = {0};
- bool result = true;
- long i;
- for (i = 0; i < ARR_SIZE; i++)
- {
- arr.at(i) = i;
- }
- for (i = 0; i < ARR_SIZE && result; i++)
- {
- result &= arr.at(i) == i;
- }
- MEM_INFO_PRINT();
- }
- void test_c_arr_without_init()
- {
- int arr[ARR_SIZE];
- bool result = true;
- long i;
- for (i = 0; i < ARR_SIZE; i++)
- {
- arr[i] = i;
- }
- for (i = 0; i < ARR_SIZE; i++)
- {
- result &= arr[i] == i;
- }
- MEM_INFO_PRINT();
- }
- void test_c_arr_with_init()
- {
- int arr[ARR_SIZE] = {0};
- bool result = true;
- long i;
- for (i = 0; i < ARR_SIZE; i++)
- {
- arr[i] = i;
- }
- for (i = 0; i < ARR_SIZE; i++)
- {
- result &= arr[i] == i;
- }
- MEM_INFO_PRINT();
- }
- void TEST_std_array()
- {
- long outVal = -1;
- PRINT_CPU(test_arr_without_init);
- PRINT_CPU(test_arr_with_init_array_at);
- PRINT_CPU(test_arr_with_array_at);
- PRINT_CPU(test_c_arr_without_init);
- PRINT_CPU(test_c_arr_with_init);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement