facebook C++ overview(Folly)
今天简单翻了一下Folly,基本上里面的库对正常人不会有啥用。本以为会像Boost那样模块依赖性很高,没想到还可以,想要抽取特性不是很难。不过里面的几个queue着实对我有用。等着用他们升级我的系统了~~~哇咔咔~~~~~下面是模块的大体介绍,没说的我也没仔细看是干嘛的。其实基本都在md格式的doc里,用vim打开就好了
Arena.h ThreadCachedArena.h:内存分配
AtomicHashMap.h,AtomicHashArray.h:不需要加锁的原子操作型hash
Benchmark.h:一个framework,用来给用户写benchmark程序,目前只通过了单线程测试。(Bechmark程序用来测试程序效率)
Bits.h:提供优化的位操作应用
ConcurrentSkipList.h:这个数据类型(http://www.cs.tau.ac.il/~shanir/nir-pubs-web/Papers/OPODIS2006-BA.pdf)的实现
Conv.h:格式转换工具,类似于lexical_cast
DiscriminatedPtr.h:类似于Boost:variant,不过只支持Pointer
Dynamic.h:动态格式类型。类似于variant,能放任何类型
Endian.h:大小端转化
escape.h:
eventfd.h
FBString.h:对std::string的升级
FBVector.h:对std::vector的升级
Foreach.h
Format.h:python模式的格式化支持
GroupVariant.h
Hash.h:很多hash函数实现
Histogram.h:收集柱状图信息的类
Intrusive.h:
json.h:json文件的序列化和反序列化,用到dynamic
Likely.h
Malloc.h:用jemalloc的时候会用到
MapUtil.h:在关联式容器里查找item的帮助工具
PackedSyncPtr.h:一种高度特化的数据结构。包括一个指针,1位的spin lock,15位的整数,在一起组成64位字
Preprocessor.h
PrettyPrint.h:输出辅助工具。(添加后缀)
ProducerConsumerQueue.h:不需要锁的单读单写队列
Random.h:产生随机数
Range.h:
RWSpinLock.h
ScopeGuard.h:Loki里面的那个scopeGuard的C++11版
SmallLocks.h
small_vector.h
sorted_vector_type:类似于map,但是用排序的vector实现的
StlAllocator.h:std的allocator的封装
String.h:连接folly::fbstring和std::string的应用
Synchronized.h:高级的同步库
System.h
ThreadCachedInt.h
ThreadLocal.h
TimeoutQueue.h:带time-out的queue
Traits.h:C++11版的type_traits
Unicode.h
摘自 刘京洋
补充:软件开发 , C++ ,