folly,facebook刚刚开源的底层c++函数
https://github.com/facebook/folly/blob/master/folly/docs/Overview.md
定位:
作为std和boost库的补充,高性能包括散列,向量,内存分配,位处理等
部件:
Arena.h ThreadCachedArena.h
内存管理的简单应用场景,多重分配一次被回收
AtomicHashMap.h AtomicHashArray.h
高性能的hash map,几乎没有用锁
Benchmark.h
测试代码的简单框架
Bits.h
高性能的一些位操作
ConcurrentSkipList.h
并发跳表的一个高效实现
Conv.h
各种类型转换函数的高效实现(比如to和from string),速度上做了优化
DiscriminatedPtr.h
与boost::variant类似,但是限制到指针
dynamic.h
动态类型对象,类似JSON对象实现
Endian.h
尾端转换原语
Escape.h
Escapes a string in C style, 是个什么东西?
eventfd.h
eventd 系统调用包裹器
FBString.h
A drop-in implementation of std::string
with a variety of optimizations.
FBVector.h
A mostly drop-in implementation of std::vector
with a variety of optimizations.
Foreach.h
Pseudo-statements (implemented as macros) for iteration.
Format.h
Python-style formatting utilities.
GroupVarint.h
Group Varint encoding for 32-bit values.
Hash.h
Various popular hash function implementations.
Histogram.h
A simple class for collecting histogram data.
IntrusiveList.h
Convenience type definitions for using boost::intrusive_list
.
json.h
JSON serializer and deserializer. Uses dynamic.h
.
Likely.h
Wrappers around __builtin_expect
.
Malloc.h
Memory allocation helpers, particularly when using jemalloc.
MapUtil.h
Helpers for finding items in associative containers (such as std::map
and std::unordered_map
).
PackedSyncPtr.h
A highly specialized data structure consisting of a pointer, a 1-bit spin lock, and a 15-bit integral, all inside one 64-bit word.
Preprocessor.h
Necessarily evil stuff.
PrettyPrint.h
Pretty-printer for numbers that appends suffixes of unit used: bytes (kb, MB, ...), metric suffixes (k, M, G, ...), and time (s, ms, us, ns, ...).
ProducerConsumerQueue.h
Lock free single-reader, single-writer queue.
Random.h
Defines only one function---randomNumberSeed()
.
Range.h
Boost-style range facility and the StringPiece
specialization.
RWSpinLock.h
Fast and compact reader-writer spin lock.
ScopeGuard.h
C++11 incarnation of the old ScopeGuard idiom.
SmallLocks.h
Very small spin locks (1 byte and 1 bit).
small_vector.h
Vector with the small buffer optimization and an ptional embedded PicoSpinLock
.
sorted_vector_types.h
Collections similar to std::map
but implemented as sorted vectors.
StlAllocator.h
STL allocator wrapping a simple allocate/deallocate interface.
String.h
String utilities that connect folly::fbstring
with std::string
.
Synchronized.h
High-level synchronization library.
System.h
Demangling and errno utilities.
ThreadCachedInt.h
High-performance atomic increment using thread caching.
ThreadLocal.h
Improved thread local storage for non-trivial types.
TimeoutQueue.h
Queue with per-item timeout.
Traits.h
Type traits that complement those defined in the standard C++11 header <traits>
.
Unicode.h
Defines the codePointToUtf8
function.