Graphviz教程

Graphviz教程 Graphviz是大名鼎鼎的AT&T实验室开发的一个画图工具。它的理念和一般的“所见即所得”的画图工具不一样,是“所想即所得”。就是你想画出怎样的图,用语言定义和描述出来,Graphviz会自动用最合理的方式去渲染布局出这个图。 绘制简单的图 digraph是有向图,graph是无向图。在有向图中->表示连接的一条边,无向图中–表示连接的一条边,不能混用。 第一行给出了图的类型和名字。当某个节点的的名称第一次出现,它就被创建。可以在一行里创建多个相连节点的连接。 设置图、节点、边的属性 Graphviz节点默认的属性是shape... Read More | Share it now!

倦鸟归巢

两三个星期前,又中听到了中岛美雪的《帰省》。然后看着歌词,听着旋律,眼眶不禁湿润了。可能是到了年底,顿生倦鸟归巢之感。是啊,一个人在千里之外奋斗,中间的酸甜苦辣只有自己知道。多少次想拍案而起,骂一声艹,老子不干了。 只是每个人都有自己的责任,不得不去忍受一些事情。就算自己再逃避也要出去争食。歌词里面唱的”不挤在城里连电车都坐不上”。如果我不在大都市里面打拼,可能连回去的高铁都舍不得买,可能连父母生病了都没钱住院。 一年下来,感觉自己被掏空了,迫切需要回去补充能量。 另一个是看的尼康单反的拍的视频短片《cast... Read More | Share it now!

使用vmmap.exe分析进程内存使用

参考:http://technet.microsoft.com/zh-cn/sysinternals/dd535533 vmmap是一个进程的虚拟和物理内存分析工具。它以图形化的方式显示进程某个时间点的内存快照,我们可以从中分析到程序为什么会占用这么多内存,以及都是什么类型的内存。 内存类型 VMMap把内存分成下面几种类型: Image。这内存代表由image... Read More | Share it now!

一个GetLastError 234的Bug

昨天QA给我报了一个bug,我写的一个模块在xp下面功能异常,而win7下面是正常的。我刚才还有些不相信,这怎么可能呢? 我自己在xp下面试一试,果然有问题。马上打开代码定位一下,居然是一处读注册表失败。我用SHGetValue从注册表里面读字符串,返回了错误码234。234的意思是有更多数据可用,问题出在我传给SHGetValue的缓冲区大小比实际要读取的缓冲区大小下。 稍微思考一下,我传入的大小是MAX_PATH,足够读取任何路径字符串了。然后再去注册表看下真实值,131字符长度,显然足够。看了下SHGetValue要求的字符长度是264,我突然意识到是不是由于Unicode造成的。然后再次读下msdn,SHGetValue最后一个参数的意思是数据缓冲区的大小,不是字符的个数,所以Unicode下面MAX_PATH去读路径可能是不够的。 然后改代码的时候review了一下其他部分,没准以前也存在这样的bug只是没有触发,果然有好几处。写代码也是步步惊心啊。 ... Read More | Share it now!