Programming 版 (精华区)
发信人: SwordLea (飞刀李), 信区: Programming
标 题: CString 的恶梦
发信站: 哈工大紫丁香 (Wed Jul 21 19:16:26 2004), 转信
在本期“程序大战”的实现过程中(代码见“第1小板凳”),利用
CString & sResult传参(引用方式),在结果保存过程中,使用了以下
方式:
sResult += szBuf;
以为凭借MFC对CString += 操作的优化可以提高代码执行效率,
但没有想到测试的结果是一场恶梦!在正式测试效率之前,我使用了
一个6M多的小文件测试,代码执行后相当前时间没有响应,让人怀疑
出现了死循环。反复检查程序都不得要领,只好报着听之任之的态度
等它运行完。经过了漫长的5分钟,才弹出来心仪已久的可爱对话框,
告诉我居然用了265891ms ! 当时也没有想到会是CString的问题,开
始单步Trace,逐条语句注释,才发现原来是CString这魔头在作祟!
遂用百试不爽的vector<char>保存中间结果,最后使用CString的
等号一次赋值,出人意料地只用了4521ms,不过5秒耶!
其原因需要分析CString源代码,但希望这个结果以同学们以启迪!
--
I came, I saw, I conquered ! — Caesar
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.246.241]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.101毫秒