1 #include "CostOfUsingStatic.h"
6 // From: https://www.youtube.com/watch?v=B3WWsKFePiM
8 namespace CostOfUsingStatic
12 // This call is costy.
13 static const string
& magic_static()
15 // Static variables are very costly.
16 // Each time a thread safe comparison must be executed.
17 static const string s
= "bob";
21 const string
& s
= magic_static();
23 const string
& magic_static_ref()
30 void CostOfUsingStatic::tests()
33 size_t total_size
= 0;
35 for (int i
= 0; i
< 2000000000; ++i
)
37 total_size
+= c
.magic_static_ref().size() + i
; // It takes ~500 ms.
38 //total_size += C::magic_static().size() + i; // It takes ~1200 ms.
43 cout
<< "total size: " << total_size
<< endl
;