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++03/C++11/C++14. Tested compilers include Clang 3.61-3.71, GCC 4.6-7.2 (32-bit and 64-bit) and MS Visual C++ 2010-2015.
plf::colony - An unordered 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 (instead of std::sort) if included in the project prior to colony.
advanced jump-counting skipfield pattern - A skipfield pattern which avoids branching during iteration. Used by colony.
The following talk entitled "Colonies, performance and why you should care" was presented at CPPcon 2016:
The slides for the talk are available here.
plf:: library and this page Copyright (c) 2017, Matthew Bentley