项目中要写一个DLL, 需要处理XML 文档,有大量的字符串操作 刚开始用CString处理, 发现速度比较慢, 后来就改用标准库里的API, 不过代码量太大了, 全部更改下来不比较麻烦, 就对这些API函数进行封装重新写了一CExString类 和CString的功能和接口完全一样, 再利用一个宏替换, #define CExString CString. 最后发现 速度提高了3倍。
跟踪MFC的代码发现CString::Format的效率很低,逐个字符进行匹配, 但好处是字符串的大小没有限制。 而sprintf()维护的缓存仅是1024byte. 这一点要注意。