Recent Posts
-
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项目源码学习一下)。然后记录所有的类的成员的访问内存的偏移,这样就可以把类里面所有的成员访问的次数进行可视化。两个工具结合起来...
-
December 12, 2013
Systemtap 2.4 在linux 3.11的一个bug,导致uprobe探测点设置不成功
systemtap 2.4 在内核3.11里面注册uprobe点失败,stapiu_probe_prehandler 函数返回UPROBE_HANDLER_REMOVE。导致probe点注册不成功。如果你的用的用户程序探测,use space probe点触发频率很高就会发现这个问题。经常看到只有第一个probe点起作用,或者probe点全部设置不成功。kprobe没有这个问题。原因是stapiu_change_minus函数里面 设置uprobe_register 在&targe...
-
December 06, 2013
Virtuabox 4.3.4虚拟机guest里面的虚拟tsc性能问题clock_gettime等时间函数性能差的解决办法
http://man7.org/linux/man-pages/man2/clock_gettime.2.htmlCLOCK_MONOTONIC_COARSECLOCK_REALTIME_COARSEhttp://lwn.net/Articles/347811/ http://patchwork.freedesktop.org/patch/1673/参考上面两篇文章,带COARSE的这种应该是不会去访问硬件时钟的,相对来说会快很多,在虚拟机表现的更明显。在程序的时间超时之类的地方,能用C...
-
December 05, 2013
Virtualbox 4.3.4虚拟机上面linux guest的tsc时钟源不可用,降级使用acpi_pm的问题(导致clock_gettime函数和gettimeofday性能变差,debian内核升级等)
测试发现,程序的时间获取函数clock_gettime 导致内核路径的acpi_pm_read 函数代价很大。---------------------------------------------perf top -e cpu-cycles -G -c 1 -p 4120- 38.17% [kernel] [k] acpi_pm_read ...
-
November 27, 2013
常用git命令
所有的命令不理解都可以git help 来查看manaul的帮助,最好的参考来的最简单最常用的git clone http://192.168.1.100:8080/git/repos/freediameter.gitgit pull #从远程仓库下载更新到本地git branch -r #查看远程分支名字git checkout -b <branch> <remote>/<branch> ...
-
October 18, 2013
Xml的escape string字符转换优化和gnu perfect hash function generator(gperf)
html和xml里面是有类似这样的escape string的编码转换的。比如xml的/** * & --> & * < --> < * > --> > * " --> " * ' --> ' */这个转换,很容易成为程序的性能热点,现在的一个模块就是这样。之前刚好看到类似问题相关的文章,escape string的转换相关函数优化之后,响应时间好很多。When...
-
September 30, 2013
C C++ 准确的随机数生成
下载LOFTER我的照片书 |一提到随机数生成,一般联想到类似c的这个代码#include<cstdlib>#include<ctime>srand(time(0));int r = rand() % (50) + 10;用这个 取余操作和 加上偏移来生成一个指定范围的随机数。一般应用这个应该是可以了,不过之前看到文章说,这样的其实不是很准确的。如果这个范围不是2的n次方的话(上面那个50就不是).那么这样取余数操作之后得到的随机分布跟以前的默认访问的...
-
September 18, 2013
Epoll和eventfd之“惊群(thundering herd)”问题
微博上面有人回复我说epoll的的惊群问题,不是很理解。带着疑问看一下linux kernel的epoll 和 eventfd相关的代码。因为我局的epoll和eventfd一起使用应该是比较简单的。?http://lxr.linux.no/linux+v3.11/fs/eventpoll.chttp://lxr.linux.no/linux+v3.11/fs/eventfd.c------------------情况1 调用 epoll_waitepoll_wait ep_poll ...
-
August 27, 2013
构建实时监控系统,统计可视化,和日志采集系统相关的开源软件和论文等
下载LOFTER我的照片书 |关键字(log trace Tracing metric monitor statistics Observability Visibility )直到2014年3月7号所了解到的资料或者开源软件有。logstash + Elasticsearch http://logstash.net/Mozilla Heka http://heka-docs.readthedocs.org/en/latest/ hekad http://he...