评论:
# re: CString 的性能之殇
2010-02-01 12:33 |
# re: CString 的性能之殇
2010-02-01 12:35 |
CString设计还是很棒的. 单字符替换可以简单的扫描即可,如果多字符肯定要重新分配内存的。
回复 更多评论
# re: CString 的性能之殇
2010-02-01 12:36 |
@chentan
可以考虑用缓冲保留一下,等到再次使用字符串的时候,或者线程空闲的时候再进行替换
回复 更多评论
# re: CString 的性能之殇
2010-02-01 14:04 |
你把CString ConvertFilePathToXmlKey(LPCTSTR lpFilePath)改成
void ConvertFilePathToXmlKey(CString &FilePath);可以解决这里的性能问题
回复 更多评论
# re: CString 的性能之殇
2010-02-01 16:30 |
@毛毛
这种方式不能, 不争论. 况且 "入参数和出参数是同一个" 是糟糕的设计.
回复 更多评论
# re: CString 的性能之殇
2010-02-01 17:02 |
@free2000fly
不一定的,有些函数就是要Update,人家就不愿意创建一个新的字符串出来呢。
回复 更多评论
# re: CString 的性能之殇
2010-02-01 17:09 |
用CString的情况中总共造成了三次内存拷贝,可能是问题所在
更换后只有一次内存拷贝
回复 更多评论
# re: CString 的性能之殇
2010-02-01 20:01 |
# re: CString 的性能之殇
2010-02-05 23:16 |
好像从算法复杂度就可以解释了。第一个遍历3遍,后面一个遍历1遍。
回复 更多评论
# re: CString 的性能之殇
2010-02-09 20:44 |
这也不能说是CString的性能之伤。
找你的应用来看,不就是通用代码和专用代码的性能比较而已。毫无意义
回复 更多评论