一致性哈希算法能够减少增减节点带来的memcache缓存失效带来的冲击。
下面是一个简单的java版实现算法,其中的哈希值算法没有实现,用HashFunction作为一个接口来提供自定义的hash值函数,大多数情况下我们可以使用md5。
import java.util.Collection;
import java.util.SortedMap;
import java.util.TreeMap;
public class ConsistentHash<T> {
private final HashFunction hashFunction;
private final int numberOfReplicas;
private final SortedMap<Integer, T> circle ...
mac环境的配置方法和linux一样。
通过ulimit来设置是否生成core文件。
ulimit -c unlimited 生成core文件
ulimit -c 0 不生成core文件
core 文件存储位置 /core/core.pid
这是一个 warnning 错误,没有处理switch中的枚举值。
在switch中添加default 和 break; 可以解决这个问题。
想写一个爬虫去爬一些图片,发现python3的request封装的比较。遂决定要装一个python3。
mac下的神器就是brew,分分种完成各种软件包的安装。执行完之后报错了。
brew install python3
结果如下,从最后几行的输出判断是由于权限不足导致的。
==> Downloading https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/python3/3.4.3 --enable-ipv6 --dataro...
gcov 是 GNU 的代码覆盖率检查工具。它利用编译时的 -fprofile-arcs -ftest-coverage 和链接时的 -lgcov 选项参数生成 .gcno 文件进而通过这些文件统计覆盖率。不过高版本的 mac 使用 clang 编译器,不支持 -lgcov 选项生成 .gcno 文件。为了解决这个问题,我们可以使用-coverage参数来生成 .gcno 文件。例如:
我的g++ --version信息如下
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-apple-darwin15.4.0
Thread model: posix
使用-lgcov会报错
ld: library not found for -lgcov
可以使用-coverage选项替换-lgcov
...