zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    URAL 2080 莫队
    Codeforces Round #361 (Div. 2) C D
    UVALive 7297 bfs
    UVALive 7472
    HDU 5773 最长上升子序列
    递归求解最大值和最小值
    数字方阵旋转问题
    实现循环队列的各种基本运算
    实现顺序栈的各种基本运算
    使用两个栈来实现队列
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2532691.html
Copyright © 2011-2022 走看看