关于strlen效率的问题
时间:2011-12-12
来源:互联网
在D:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src目录下
找到了strlen.h的实现代码
C/C++ code
自己下了个GNU的源代码 找到了里面的strlen函数的代码
当我把这两份代码复制粘贴进入我自己创建的工程里面进行测试的时候 msvc_strlen(MSVC)确实比 gnu_strlen(GNU)要慢
但是两个都比直接调用strlen要慢得多 请问这个是什么原因造成的
PS:在release下测试仍然是这样。。。
找到了strlen.h的实现代码
C/C++ code
size_t __cdecl strlen ( const char * str ) { const char *eos = str; while( *eos++ ) ; return( eos - str - 1 ); }
自己下了个GNU的源代码 找到了里面的strlen函数的代码
当我把这两份代码复制粘贴进入我自己创建的工程里面进行测试的时候 msvc_strlen(MSVC)确实比 gnu_strlen(GNU)要慢
但是两个都比直接调用strlen要慢得多 请问这个是什么原因造成的
PS:在release下测试仍然是这样。。。
作者: Joker____ 发布时间: 2011-12-12
给楼主找了篇文章,有空可以看看
http://blog.csdn.net/masefee/article/details/7040012
http://blog.csdn.net/masefee/article/details/7040012
作者: thefirstz 发布时间: 2011-12-12
一般编译器中,很都会有两套库函库,一套是用标准的C写的,一套是用汇编写的
用标准的C写的,通用性好,便于移植,但效率低
用汇编写的,效率高.但移植性差(如linux的gcc与windows VS的汇编程式是不同的)
对于strlen,当然是用汇编写的效率好些(记得以前讨论过类似的),看上去,汇编代码要长很多,但它用了效率优化(如一次操作4个字节,对32位CPU来说,效率要比4次操作1个字节效率高很多)
用标准的C写的,通用性好,便于移植,但效率低
用汇编写的,效率高.但移植性差(如linux的gcc与windows VS的汇编程式是不同的)
对于strlen,当然是用汇编写的效率好些(记得以前讨论过类似的),看上去,汇编代码要长很多,但它用了效率优化(如一次操作4个字节,对32位CPU来说,效率要比4次操作1个字节效率高很多)
作者: keiy 发布时间: 2011-12-12
http://topic.csdn.net/u/20110826/08/3a6b0dff-2850-433c-a002-9f3795a7a1f1.html
给楼主找了个这个。。看看吧C语言版的,效率与自带的strlen相等的,。
给楼主找了个这个。。看看吧C语言版的,效率与自带的strlen相等的,。
作者: mingliang1212 发布时间: 2011-12-12
引用 2 楼 keiy 的回复:
一般编译器中,很都会有两套库函库,一套是用标准的C写的,一套是用汇编写的
用标准的C写的,通用性好,便于移植,但效率低
用汇编写的,效率高.但移植性差(如linux的gcc与windows VS的汇编程式是不同的)
对于strlen,当然是用汇编写的效率好些(记得以前讨论过类似的),看上去,汇编代码要长很多,但它用了效率优化(如一次操作4个字节,对32位CPU来说,效率要比4次操作1个字节……
一般编译器中,很都会有两套库函库,一套是用标准的C写的,一套是用汇编写的
用标准的C写的,通用性好,便于移植,但效率低
用汇编写的,效率高.但移植性差(如linux的gcc与windows VS的汇编程式是不同的)
对于strlen,当然是用汇编写的效率好些(记得以前讨论过类似的),看上去,汇编代码要长很多,但它用了效率优化(如一次操作4个字节,对32位CPU来说,效率要比4次操作1个字节……
那我直接调用的strlen就是汇编版本的么?一般什么时候才会用到C版本的库函数呢
作者: Joker____ 发布时间: 2011-12-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28