strcat在某种特定条件下的优化
来源:互联网 发布:日本生活知乎 编辑:程序博客网 时间:2024/05/16 15:36
strcat是C语言一个基本的字符串操作函数,它的源代码一般是这样的。
由此可见,strcat调用时,先移动目标字符串的指针到其尾部,再进行复制。这种做法对于下标比较大的数组重复调用时,效率比较低。想象一下,第一次调用strcat时,指针由0数到100,只不过复制了几个字符,第二次调用strcat时,指针又从0数到108,无论调用多少次,指针总是从0数起,就会知道这个时候是多么浪费系统资源了!
我找到一个办法,字符串追加时,事先给出目标字符串结尾所在的位置,追加时,也就不用从头开始计算其长度了,复制的过程中,目标字符串的结尾也随之移动,下一次再追加也就可以使用它了。以下就是优化过的string_append,与strcat相比,增加了一个整形指针以传递目标字符串长度的地址。
经试验,string_append在大数组重复追加内容的情形下,优势非常明显。其它情形下,使用原来的strcat也就足够了。
-bash-3.2$ ./string_append_demo
It takes 2 seconds to show the performance of string_append()
It takes 11 seconds to show the performance of strcat()
They are equal
- strcat在某种特定条件下的优化
- strcat在某种特定条件下的优化
- strcat在某种特定条件下的优化
- 在特定条件下关闭指定的Activity
- RSA加密算法及特定条件下的破解
- MFC 在某些特定条件下改变控件内文本的颜色的方法
- 【日常】在某特定条件下提权夺取服务器权限
- strlen()和swap() 两个函数的实现(特定条件下)。
- 判断某种特定类型可以容纳的最大值或最小值
- sql 查询之排除某种特定的数据
- Java代码优化-在某种情况下避免Map的containsKey方法的使用
- dedecms织梦特定条件下,隐藏特定栏目的方法,通过css实现
- 在没有 IIS 的条件下运行 ASMX
- 在没有 IIS 的条件下运行 ASMX
- Aspose.Words 11月新版17.11发布 | 修复表格在特定条件下丢失
- 流媒体开发之-音悦台TV解析特定条件下的所有TV视频
- 特定条件下经验风险最小化等价于极大似然估计的证明
- 特定条件下经验风险最小化等价于极大似然估计的证明(转载)
- 联想乐Phone,想说爱你不容易……
- 2010.05.23 学习asp.net对象和状态管理
- 学习PHP 感悟小结1
- 转:第八讲 Java网络编程
- Rational Rose 2007 &Rational Rose 2003 下载及破解方法和汉化文件下载
- strcat在某种特定条件下的优化
- PAC-MAN 30th Anniversary
- windows mobile和symbian平台下rtsp流媒体播放器实现方法
- 504错误
- XP里分区和卷有什么区别?
- 利用多线程技术优化文件读写转换处理
- ubuntu 下达建略
- C语言常见题目1
- ubuntu 下达建eCos开发环境