2005-06-02

缓存的教训

昨天改一段程序,把原来写到文件里的内容缓存在内存里,直到所有数据都准备好再往文件里写。

由于是文本文件,数据是字符串,正好我们有个字符串类,就拿来做个buffer,每次获得一小段数据就构造一个字符串实例,然后和buffer做一个拼接,因为我们的字符串类可以自动管理内存,所以没费多大事就把程序写好了。

哪知本来是为了减少编译时间的修改却导致时间暴涨,后来大家分析,估计时间都花在字符串复制上面了,因为每次拼接的时候都要重新分配内存,然后把两段字符串都复制过去。现在我打算尝试构造一个字符串的链,每构造一个字符串就把它插入到链里,这样就节省了大量复制操作,希望能达到预计的效果。

没有评论: