OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-SimpleGPUHashTable commits / 9ce062c

Use std high resolution timer instead of Windows QPC
9ce062cf2a1559208141456b9200c85d65bf918d
by David Farrell <nosferalatu@gmail.com> · 2020-03-09T07:27:15.000Z

Changed files (1) +12 -19

src/main.cpp +12 -19
……@@ -5,7 +5,7 @@
55#include "unordered_map"
66#include "unordered_set"
77#include "vector"
8#include "windows.h"
8#include "chrono"
99#include "linearprobing.h"
1010
1111// Create random keys/values in the range [0, kEmpty)
……@@ -42,32 +42,25 @@ std::vector<KeyValue> shuffle_keyvalues(std::vector<KeyValue> kvs, uint32_t nums
4242 return shuffled_kvs;
4343}
4444
45LARGE_INTEGER start_timer()
45using Time = std::chrono::time_point<std::chrono::steady_clock>;
46
47Time start_timer()
4648{
47 LARGE_INTEGER timer;
48 QueryPerformanceCounter(&timer);
49 return timer;
49 return std::chrono::high_resolution_clock::now();
5050}
5151
52double get_elapsed_time(LARGE_INTEGER start)
52double get_elapsed_time(Time start)
5353{
54 LARGE_INTEGER end;
55 QueryPerformanceCounter(&end);
56
57 LARGE_INTEGER frequency;
58 QueryPerformanceFrequency(&frequency);
59
60 LARGE_INTEGER elapsed;
61 elapsed.QuadPart = end.QuadPart - start.QuadPart;
62 elapsed.QuadPart *= 1000000;
63 double milliseconds = elapsed.QuadPart / (double)frequency.QuadPart / 1000;
54 Time end = std::chrono::high_resolution_clock::now();
6455
65 return milliseconds;
56 std::chrono::duration<double> d = end - start;
57 std::chrono::microseconds us = std::chrono::duration_cast<std::chrono::microseconds>(d);
58 return us.count() / 1000.0f;
6659}
6760
6861void test_unordered_map(std::vector<KeyValue> insert_kvs, std::vector<KeyValue> delete_kvs)
6962{
70 LARGE_INTEGER timer = start_timer();
63 Time timer = start_timer();
7164
7265 printf("Timing std::unordered_map...\n");
7366
……@@ -105,7 +98,7 @@ int main()
10598 (uint32_t)insert_kvs.size(), (uint32_t)delete_kvs.size());
10699
107100 // Begin test
108 LARGE_INTEGER timer = start_timer();
101 Time timer = start_timer();
109102
110103 KeyValue* pHashTable = create_hashtable(kHashTableCapacity);
111104