Recent Posts
-
April 06, 2014
Google有发布了新的快速字符串hash算法farmhash
项目主页https://code.google.com/p/farmhash/说是包含了CityHash的优点,应该还有其他的该井。原文在这里,都打不开http://google-opensource.blogspot.nl/2014/03/introducing-farmhash.html这里有一点介绍Google publishes FarmHash, a new family of hash functions for stringshttp://www.infoq.com/news...
-
April 02, 2014
Redis也支持hyperloglog数据结构了
http://antirez.com/news/75对HyperLogLog数据结构做了一些说明,和一些参考文档。通过扔硬币的正反面来说明这个原理,比如,如果你告诉我你扔硬币看到正面的次数是10次,那么我就可以大概估计你扔的次数是20次。 如果这个数值比较到大,那么是结果是比较准确的。HyperLogLog 就是把这个element 做哈希,然后统计所有hash得到的数值 高位开始0标志位占整个的比例,就可以大概估计总的数目。这就是整个空间不重复数据的数目。提到了Google的实现的论文H...
-
March 21, 2014
Cmake常用命令
cmake_minimum_required(VERSION 2.8)# 包含其他cmake文件# 通用配置选项,和通用的全局函数include(build-windows/common.cmake)#项目project(webrtc)#比较有用的内置变量 当前目录set(current_dir ${CMAKE_CURRENT_SOURCE_DIR})# 判断目录或者文件是否存在set (directx_sdk_path "${webrtc_root}/third_party/direct...
-
March 19, 2014
Cmake使用protobuf编译器自动生成proto文件对应的源码的例子
cmake的标准模块支持protobuf的,参考官方文档对于FindProtobuf的说明http://www.cmake.org/cmake/help/v2.8.12/cmake.html#module:FindProtobufwebrtc项目里面一个例子if (${enable_protobuf}) set(PROTOBUF_SRC_ROOT_FOLDER "${webrtc_root}/third_party/protobuf-2.5.0") #include(FindPro...
-
March 04, 2014
Signal会分发到多线程的任意一个线程上面去的
http://man7.org/linux/man-pages/man7/signal.7.html没有使用pthread_sigmask(3) 设置mask拒接这个信号的线程都有可能收到kill 发给进程的信号,系统任意选可以接收信号的线程来投递。该线程怎么处理这个信号的结果作为整个进程的行为。如果这个线程没有捕获退出信号,那么改进程的所有线程都会被杀死了了。可以用pthread_kill 给指定的线程发送信号,这样可以避免系统随机选择一个符合条件的线程来投递信号。但即使这样,收到信号的...
-
February 21, 2014
Linux 上面试用一下tcmalloc 的heap profiler
参考文档http://google-perftools.googlecode.com/svn/trunk/doc/heapprofile.htmlhttp://goog-perftools.sourceforge.net/doc/heap_profiler.html在debian 7的虚拟机上面测试,libtcmalloc-minimal4 包是不包含heap profiler之类的工具在里面的吧普通的内存分配可以用 libtcmalloc-minimal4,但如果使用profiler就要...
-
January 22, 2014
C++ memory profiler 检查c++ 程序内存都消耗在什么地方
C++ memory profiler 检查c++ 程序内存都消耗在什么地方Analyzing the Performance Impact of Memory Utilization and Garbage Collectionhttp://javabook.compuware.com/content/memory/analyzing-java-memory.aspx好像这些带GC的语言分析内存问题比较方便。C++我很想有一个这样的工具可以使用,比如可以在运行时attach到某个进程,...
-
January 21, 2014
Cpu instruction cache misses优化和gcc的profile Guided optimization( Coverage 和 O3 Profile Use)
下载LOFTER我的照片书 |40% better single-threaded performance in MariaDBhttp://kristiannielsen.livejournal.com/17676.html微博看到有人提到这篇文章,还是有点料的首先有perf 观察instruction cache misses。原文提到的这个技巧很有参考价值,以前没怎么注意这个 level 1 instruction cache ("icache").,看来这个东西对性能...
-
January 17, 2014
Cmake的function(函数)如何传递和返回list参数
作为参数传进去的时候,可以只写list的名字,而不是list的值比如下面脚本要把systerm_wrappers_sources这个list传过去,那么只想下面这样写就可以了extract_platform_specific_source(systerm_wrappers_sources)不要写extract_platform_specific_source(${systerm_wrappers_sources})然后里面函数根据这个字符串参数的值(内容为systerm_wrappers_...
-
January 02, 2014
看到libtorrent两篇不错的高性能的文章(内存cache优化和 网络消息批处理等)
下载LOFTER我的照片书 |1. memory cache optimizationshttp://blog.libtorrent.org/2013/12/memory-cache-optimizations/又是使用mprotect,和用户态的SIGSEGV signal handler来处理缺页异常(可以参考下面的access_profiler项目源码学习一下)。然后记录所有的类的成员的访问内存的偏移,这样就可以把类里面所有的成员访问的次数进行可视化。两个工具结合起来...