我在写grpc的实例时, 需要使用一个多线程的hash map, C++标准库中没有多线程的hash map, facebook开源的folly中存在大量的基础类, 中间存在一个高性能的hash map,这个正是我所需要的, 所以在这里简介一下folly库, 按照官方说明, folly库安装需要gcc 5.1+ 和支持C++14的编译器编译的boost. 在安装folly之前, 还需要安装google的glog, glog的github仓库在: https://github.com/google…
  Folly: Facebook Open-souce LibrarY,Facebook开源的一个基础组件库,据说在大规模的场景中性能较高.目前因为自己负责的系统有几个地方性能较差,因此特意找来看看牛叉公司里别人都是怎么做的.简单瞄了几下源码,感觉代码还是比较清晰易懂,看上去至少比我司写的感觉清爽 T T   由于Folly要求C++11支持,并且用到了boost,因此特意升级了最新版的gcc4.8.1及boost1.5.3,没想到一下子升级过头,git上的Folly直接下载后编译不过了,研究…
介绍 使用场景 为什么不是std::array 其他用法 其他类似库 Benchmark 代码关注点 主要类 small_vector small_vector_base 数据结构 InlineStorageType capacity capacity内联在对象中 通过malloc_usable_size获取capacity 将capacity放到堆上 size()相关 capacity()函数 数据内联在对象中 为capacity分配了内存 不为capacity分配空间 扩容 先迁移原有数据还…
目录 传统同步方案的缺点 folly/Synchronized.h 简单使用 Synchronized的模板参数 withLock()/withRLock()/withWLock() -- 更易用的加锁方式 升级锁 ulock()和 withULockPtr() Timed Locking Synchronized 与 std::condition_variable acquireLocked() -- 同时锁多个数据 使用一把锁,锁多个数据 struct std::tuple Benchmar…
CocoaPods升级后(最新版本1.0.1),安装第三方库的时候会报如下错误: The dependency `AFNetworking (~> 3.1.0)` is not used in any concrete target. 原因:CocoaPods升级后,Podfile文件的内容格式要求发生了变化,必须指出指出所用第三方库的target. 解决步骤: (1)检查CocoaPods的版本 pod --version (2) 升级或安装最新版本(目前版本1.0.1) 注意:如果cocoa…
直接执行安装命令 $ pip install builtwith 提示pip当前版本为7.1.2,要使用"pip install --upgrade pip"升级到8.1.2 $ pip install --upgrade pip 报错如下: Cannot fetch index base URL https://pypi.mirrors.ustc.edu.cn/simple/ 提示信息表示找不到镜像网站,有可能是镜像源失效了,或者国外的源被墙了.修改为国内可访问的源 $ vim ~/…
最近在centos7.0下用itextpdf将word文档转成pdf时出现字体丢失的情况.网上找了很多资料,各式各样的原因和解决方法.后来经过一番测试发现是centos7.0 minimal没有安装相应的字体库导致itextpdf转换时出现字体丢失.下面记录下centos7下安装字体库的方法. 安装字体管理工具: yum install -y fontconfig mkfontscale 1) Windows下的ttf字体与GNOME是兼容的!因而可以将C:\Windows\Fonts下的字体打…
1.先安装pip: 下载地址:http://pypi.python.org/pypi/pip#downloads 下载pip-8.1.2.tar.gz(md5,pgp)完成之后,解压到一个文件夹,cmd控制台进入解压目录,输入: python setup.py install 安装好pip之后,将C:\Python27\Scripts 添加至环境变量. 如果是Linux系统: wget https://bootstrap.pypa.io/get-pip.py --no-check-certifi…
安装第三方库出现 Python version 2.7 required, which was not found in the registry 建立一个文件 register.py 内容如下. 然后执行该脚本. import sys from _winreg import * # tweak as necessary version = sys.version[:3] installpath = sys.prefix regpath = "SOFTWARE\\Python\\Pythonco…
前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效:  如上图可以看出,不仅没有中文字体,连字体库都没有,那么接下来就记录一下在Linux CentOS 7中如何安装字体库以及中文字体. 安装字体库 在CentOS 4.x开始用fontconfig来安装字体库,所以输入以下命令即可: yum -y install fontconfig 当看到下图的提示信息时说明已安装成功:   这时在/usr…