Best Performance of a C++ Singleton
2 days ago
- #Singleton
- #Performance
- #C++
- The article discusses optimizing the performance of a C++ singleton, using a DisplayManager as an example.
- Two types of constructors are compared: defaultable (user-declared) and user-defined, with the former being more performant.
- User-defined constructors introduce guard variables and checks, leading to more assembly code and slight delays.
- An alternative approach using a private static data member instead of a block local static variable is presented.
- The static data member approach results in less assembly code and faster performance, especially with user-defined constructors.
- For defaultable constructors, both implementation strategies (block local static and static data member) are performance-equivalent.
- The article recommends using the block local static approach when possible for simplicity.