delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

01 Feb 2007

诡异的freetype2问题

今天帮同事调一个程序。

问题:服务器,FreeBSD 6.2上,某程序速度是一台配置较低的笔记本上的Ubuntu的大约1/10。

折腾许久,手工改了一堆port,发现没作用。遂祭出ktrace,发现那个程序十分不理性地mmap一个中文ttf文件;将字体改为英文的,则速度一样。另一个诡异的问题是,使用中文字体会疯狂吃内存。

然后改了freetype2,令其不使用mmap,发现不再出现不理性的内存占用了,速度提高10倍。

目前从现象看,是freetype2在FreeBSD上使用中文字体时,所进行的mmap存在一些问题,导致大量的换页操作;由于这些换页操作导致了大量IO,使得程序本身的性能受到严重影响。但是,由于什么原因导致这些mmap与采用标准libc文件操作之间发生如此大的语义差异,还需要进一步的分析跟踪才能知道。