Fast Reference Counter (FRC)
(C) 2017, 2018 Terrain Data, Inc.
FRC is a high-performance reference counting library for C++. It provides
smart pointer types with performance that greatly exceeds that of
boost::atomic_shared_ptr, for example; in
particular, FRC's reference-counted pointer types excel in concurrent
scenarios (such as concurrent data structures). A research paper describing
FRC in detail is linked at the bottom of this file.
The repository consists of three main components:
- The FRC library
- Unit tests for the FRC library and supporting components
- Benchmarks for the FRC library
Source code for the tests is located under the
test folder, and source code
for the benchmarks is located under the
benchmark folder. Source code for
the FRC library is located under the
All build files (including binary output, CMake build scripts, Makefiles, etc.)
are located under the
build directory. Each of the components of the
repository has its own subdirectory and associated
CMakeLists.txt under the
cmake directory contains CMake helper routines, including the
common compiler flags used for compiling the projects.
lib directory contains scripts (and, when the FRC library is
built, the corresponding headers/libraries) for downloading and building
dependent libraries, such as Boost and Google Test (the latter being used for
managing tests and benchmarks).
FRC automatically downloads and builds certain dependencies like Boost.
However, certain other dependencies may need to be installed. For example,
in order to run
apply_style.sh, you should first install the following
dependencies (written here as a one-line command for Debian-like operating
sudo apt-get install astyle
We welcome contributions to the FRC project. Any new commits should be sure to
adhere to our code style; please run
./apply_style.sh each time you are about
to make a commit in order to automatically enforce our code style.
Please see the included COPYING.md.
Using in a Research Project
For details on FRC, download our research paper for free here. If you use FRC in a research project, please cite our paper (citation below), and please let us know about your paper!
Charles Tripp, David Hyde, and Benjamin Grossman-Ponemon. 2018. FRC: A High-Performance Concurrent Parallel Deferred Reference Counter for C++. In Proceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management (ISMM '18). ACM, New York, NY, USA, 14-28. https://doi.org/10.1145/3210563.3210569