Recent Posts
-
December 20, 2011
英特尔关于开发多线程程序的建议
Intel Guide for Developing Multithreaded Applicationshttp://software.intel.com/en-us/articles/intel-guide-for-developing-multithreaded-applications/这里有个pdf,很多要点吧,对我这种菜鸟来说,值的一看啊。最近要看的东西太多了,队列好长了,不知道什么时候看的完哈!英特尔关于开发多线程程序的建议。 - widebright - widebrigh...
-
December 20, 2011
磁盘读写编程 高吞吐量
来自Apache Kafka项目,一个高吞吐量分布式消息系统,需要做消息的序列化,项目文档提到这个磁盘读写的文档不错,需要仔细学习一下相关思想。http://incubator.apache.org/kafka/design.html值的关注的几个地方: 随机读写和顺序读写操作的性能差异。 两者性能差距一万倍,为了更好的磁盘性能,只能尽量保证你的操作是顺序的了。原文:As a result the performance of linear writes on a 6 7200rpm S...
-
November 30, 2011
Printf打印64位整数导致的bug
#include<stdio.h> void main(void) { _int64 a = 1; char * str = "hello widebright"; printf("%d %s\n",a,str); //这个是打印32位数的,非预期结果 printf("%lld %s\n",a,str); //正确的打印64位数的写法 //上面把64位数当作32位数打印的时候,就把这数的高32位当作第二个参数%s使用了, //因为这时6...
-
November 25, 2011
让vc和gcc生成预编译后的源文件
下载LOFTER我的照片书 有时一些宏很复杂,代码看起来不是很直观,可以配置vc让他生成经过处理后的吧宏替换后的代码。GCC也有类似的代码吧在 “工程属性” —〉“C/C++”—〉“Project Options” 手工填入/P,然后rebuild,会产生于.cpp同名的.i文件,在这里宏被展开了。vc2008中, 可以用上面安格办法,也可以直接在“c/c++” 里面的“Preprocessor” -> “Generate Preprocessed...
-
October 20, 2011
Linux内核镜像文件vmlinux 和压缩格式bzimage格式分析
组内搞培训,根据某牛人的blog,学习一下linux初始化过程。我都快要走人了,也给我分了一下任务,唉。内核镜像文件格式解析=================1、 需要使用的命令================readelf -- 显示elf格式文件信息 。 反汇编等objdump -- 显示object格式文件信息 例如反汇编objcopy -- 复制object文件段落,生成新的object文件。 可用于copy remove 一个object文件的某个段。nm ...
-
October 08, 2011
我这五年都干了些什么
决定离职了,明天到了公司跟leader提出申请吧。 非常非常非常快的,五年一下子就过了,时间真是过得飞快啊!五年都够我再读一次大学了,好像也什么都没学会。 小心翼翼地写个总结,以便n年以后翻翻我的博客的时候,还能够看到我当年都是怎么过来的,花花年华都是怎么被我浪费掉的。我层次比较低,记个流水帐,什么体会什么的写不出来。 一到公司,被分到一个网页测试小组,项目已经是后期了,我进入应该是一个星期还是两个星期,然后项目就结束了。我唯一记得的事情是这个项目我们组长偷偷的使用了...
-
July 21, 2011
字符串匹配的boyer Moore algorithm和高效小巧的 sunday algorithm
下载LOFTER我的照片书 |BM 算法最坏的情况可能比较字符的次数没有KMP算法好,但他最好的时间复杂度可以达到O(n/m) 要比KMP好,在字符集比较大的应用场合一般情况下好像是KMP性能的3到5倍? 说是是这个BM已经是字符匹配算法性能比较的基准了,算比较的实现了吧,很多文本编辑器的“查找”功能都是使用的这个。他算法从字符串的末尾向前面开始比较:abcdaddddddddddddddddd abcde ^比如像上面这个字符串,先比较最后一个字符e 和 a,然后不匹...
-
May 24, 2011
Linux 设备驱动模型和scsi磁盘的设备的发现和移除
“The Linux Kernel Driver Model”============================== 由 bus 、driver 、device 、class 等部分组成,是linux为各种各样的总线和设备搞的一个统一模型。实现了支持现代计算机的设备热拔插模型("plug and play", power management, and hot plug),满足英特尔和微软倡导的ACPI规范的各种各样的设备应该都可以通过这个模型表现出来。 这个模型的定义了一系列...
-
February 01, 2011
Bash的按tab键自动补全(自动完成)的原理与扩展
用过bash的人,可能都对TAB自动补全功能有印象吧,按一下“TAB“键就自动帮你把命令或者文件名补全,确实好用。这个应该是bash解析用户输入的时候,加上这个自动补全的功能的。方便的地方是bash提供的内置命令complete允许你对这个功能进行自定义扩展。 比如complete -F _my_host my_ssh 就会指定 my_ssh这个名字的自动完成由 _my_host 这个函数去处理比如我在 .bashrc 后面加上下面这个代码之后----------------------...
-
January 18, 2011
Kdb和kprobe的兼容问题
下载LOFTER我的照片书 |想到服务器上去用kprobe调试一下结果发现这2.6.9的内核上面,kdb和kprobe是有冲突的。/* 默认的kdb patch和 kprobe有冲突 要修改这个才能cblade版本里使用 kprobe一开始以为是linux的crash dump 和kdb注册的panic事件通知有关。内核的panic注册函数都放在panic_notifier_list这个全局链表里面,当内核panic的时候,他就调用这个链表下面的注册函数,linux cras...