• Stars
    star
    149
  • Rank 248,619 (Top 5 %)
  • Language
    C++
  • License
    zlib License
  • Created about 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A drop-in replacement for std::list with 293% faster insertion, 57% faster erasure, 17% faster iteration and 77% faster sorting on average. 20-24% speed increase in use-case testing.

plf::list

A drop-in replacement for std::list with (on average):

  • 293% faster insertion
  • 57% faster erasure
  • 17% faster iteration
  • 77% faster sorting
  • 70% faster reversal
  • 91% faster remove/remove_if
  • 63% faster unique
  • 811% faster clear (1147900% for trivially-destructible types)
  • 1248% faster destruction (6350% for trivially-destructible types)
  • 20-24% faster performance overall in ordered use-case benchmarking(insertion, erasure and iteration on the fly and over time)

(Benchmarks performed on a haswell-based CPU under GCC 8.1: http://www.plflib.org/benchmarks_haswell_gcc.htm Insertion, erasure, and iteration percentages obtained as average of performance across 5 types from char to very large struct)

Documentation and function descriptions are here: https://plflib.org/list.htm plf::list is C++98/03/11/14/17/20/23/etc compatible.

More Repositories

1

plf_colony

An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures. Provides higher-performance than std:: library containers for high-modification scenarios with unordered data.
C++
397
star
2

plf_nanotimer

A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking. The implementation is as limited and as simple as possible to create the lowest amount of overhead.
C++
131
star
3

Windows-10-11-Simplifier

Windows 10/11 Simplifier - A script for automating simplifications and maintenance
Batchfile
122
star
4

plf_hive

plf::hive is a fork of plf::colony to match the current C++ standards proposal.
C++
70
star
5

plf_stack

A C++ data container replicating std::stack functionality but with better performance than standard library containers in a stack context.
C++
62
star
6

plf_queue

A C++ data container replicating std::queue functionality but with better performance.
C++
30
star
7

plf_indiesort

A sort wrapper enabling both use of random-access sorting on non-random access containers, and increased performance for the sorting of large types.
C++
19
star
8

plf_engine

A modern(ish) cross-platform open-source 2D game engine built on top of SDL2. C++98/03/11/14/17 compatible. Requires plf::colony and plf::stack.
C++
16
star
9

plf_rand

A replacement for rand()/srand() that's ~700% faster and typically has better statistical distribution. An adaptationof Melissa O'Neill's PCG rand with a fallback to xor-rand for 32-bit code.
C++
13
star
10

plf_reorderase

A faster method for singular erasures, ranged erasures, and erase_if-style erasures for vector/deque/static_vector when element order is not important.
C++
5
star
11

win10_disable_defender

A simple script to disable the Defender antivirus in Windows 10. This can occasionally be useful, for example when wanting to avoid overhead during benchmarking or for low-latency applications like audio hosts.
Batchfile
4
star
12

plf_colony_old

Deprecated version of colony which will be updated when and if bugs are found. For backwards compatibility with users of colony version 5.
C++
1
star