folly 是 facebook 开源的高性能 C++库。
标签: folly
-
之前提到单字节且为 POD 结构的自旋锁实现
folly::MicroSpinLock
,而folly:PicoSpinLock
则只需要一个位!实现代码在https://github.com/facebook/folly/blob/master/folly/synchronization/PicoSpinLock.h。 -
由 Facebook 开发和维护的 C++库 Folly 提供了自旋锁的实现
folly::MicroSpinLock
,代码文件地址:https://github.com/facebook/folly/blob/master/folly/synchronization/MicroSpinLock.h。 -
由 Facebook 开发和维护的 C++库 Folly 提供
folly::small_vector
,代码文件地址:https://github.com/facebook/folly/blob/master/folly/small_vector.h。 -
高效程序总是尽量避免频繁触碰在堆上分配和释放内存,所以无论是
std::string
还是folly:fbstring
都做了SSO
( small string optimization )。而folly::FixedString
是一个很有意思的实现,它可以把任意长度的字符串都放在堆上。代码可见https://github.com/facebook/folly/blob/master/folly/FixedString.h。 -
由 Facebook 开发和维护的 C++库 Folly 提供了锁
folly::MicroLock
,代码文件地址:https://github.com/facebook/folly/blob/master/folly/MicroLock.h。 -
folly::fbstring
是一个完全兼容std::string
的类,可以做到无缝替换,而且性能更高。其代码参见https://github.com/facebook/folly/blob/master/folly/FBString.h。 -
folly::dynamic
提供类似于C++
的动态类型。和std::any
可以容纳任意类型不一样,folly::dynamic
只支持保存以下几种类型: -
由 Facebook 开发和维护的 C++库 Folly 提供
folly::sorted_vector_set
和folly::sorted_vector_map
,是std::map
和std::set
在小数据集上的优化版。代码见: https://github.com/facebook/folly/blob/master/folly/sorted_vector_types.h。 -
Folly 官方地址:https://github.com/facebook/folly。