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.

plf::timsort - A fork of GFX's timsort function - will be used internally by colony and list (instead of std::sort) if included in the project prior.

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



Talks

The following talk entitled "Colonies, performance and why you should care" was presented at CPPcon 2016:

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.
plf:: library and this page Copyright (c) 2018, Matthew Bentley