PLF C++ Library

PLF is a collection of library modules for C++. Please click on the links below to learn more about the different modules and to download. All modules (except timsort) are under a permissive Zlib license and support C++98/03/11/14/17. Tested compilers include Clang 3.71-6.0, GCC 4.6-8.1 (32-bit and 64-bit) and MS Visual C++ 2010-2017.

blog - A random collection of thoughts, assembled and poorly filtered through cognitive biases and subjective aesthetics, resulting in a distortion of perspective.

plf::colony - An unordered bucket-like data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements.

plf::list - A data container replicating std::list functionality but with (on average) 333% faster insertion, 81% faster erasure and 16% faster iteration.

plf::stack - A data container replicating std::stack functionality but with better performance than standard library containers in a stack context.

plf::nanotimer - A cross-platform lowest-overhead microsecond-precision timer for simple benchmarking on Linux/BSD/Windows/Mac.

advanced jump-counting skipfield pattern - A skipfield pattern which avoids branching during iteration. Previously used by colony versions 4.68 and lower.


The following talk entitled "Colonies, performance and why you should care" was presented at CPPcon 2016. Please note the talk is our-of-date in terms of the technologies used in Colony:

The slides for the talk are available here.

The following talk entitled "Can we make a faster linked list?" was presented at PacifiC++ 2017:

The slides for the talk are available here.

Contact: footer
Also I'm on twitter, for some reason.
plf:: library and this page Copyright (c) 2019, Matthew Bentley