2 ms·
Ported to C++, added two ATL collections, also added 100M elements data point: https://github.com/Const-me/CollectionMicrobench https://github.com/Const-me/Col
by Const-me 10y ago
Ported to C++, added two ATL collections, also added 100M elements data point:
https://github.com/Const-me/CollectionMicrobench https://github.com/Const-me/CollectionMicrobench
Arrays are still generally faster than lists.
The funny thing is Microsoft’s linked lists are faster than C++ standard vectors.
- ric129 10y ago>The funny thing is Microsoft’s linked lists are faster than C++ standard vectors. If I had to guess, it's because the std::vector is more conservative in memory use and it causes more malloc/array copy calls.
- Const-me 10y agoI think the main reason is CAtlList class encapsulates its own memory pool. It allocates RAM in batches. The default batch size for CAtlList is 10 elements/batch, user-adjustable in constructor, but I kept the default value 10. The elements are created directly adjacent to each other. This makes iteration faster because RAM locality despite the pointer-based data structure.