随笔-60  评论-262  文章-1  trackbacks-0

http://blog.tinybrowser.net/archives/644

posted on 2010-02-01 11:18 free2000fly 阅读(2656) 评论(9)  编辑 收藏 引用

评论:
# re: CString 的性能之殇 2010-02-01 12:33 | chentan
单字符替换可以这样, 但多字符替换的时候呢  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 12:35 | megax
CString设计还是很棒的. 单字符替换可以简单的扫描即可,如果多字符肯定要重新分配内存的。  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 12:36 | Goteet
@chentan
可以考虑用缓冲保留一下,等到再次使用字符串的时候,或者线程空闲的时候再进行替换

  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 14:04 | 毛毛
你把CString ConvertFilePathToXmlKey(LPCTSTR lpFilePath)改成
void ConvertFilePathToXmlKey(CString &FilePath);可以解决这里的性能问题  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 16:30 | free2000fly
@毛毛
这种方式不能, 不争论. 况且 "入参数和出参数是同一个" 是糟糕的设计.  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 17:02 | 陈梓瀚(vczh)
@free2000fly
不一定的,有些函数就是要Update,人家就不愿意创建一个新的字符串出来呢。  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 17:09 | wl_99888
用CString的情况中总共造成了三次内存拷贝,可能是问题所在
更换后只有一次内存拷贝  回复  更多评论
  
# re: CString 的性能之殇 2010-02-01 20:01 | free2000fly
@wl_99888
精辟  回复  更多评论
  
# re: CString 的性能之殇 2010-02-05 23:16 | coneagoe
好像从算法复杂度就可以解释了。第一个遍历3遍,后面一个遍历1遍。  回复  更多评论
  
# re: CString 的性能之殇 2010-02-09 20:44 | 。。。
这也不能说是CString的性能之伤。
找你的应用来看,不就是通用代码和专用代码的性能比较而已。毫无意义  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理