memcpy的效率高吗?

rockswang 2001-03-12 11:37:00
对于内存拷贝,我想是不是自己编一个inline函数,用循环来复制更好一些呢?
我想破了头也觉得memcpy如果不用汇编也不过如此而已罢?
...全文
883 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
holyfire 2001-03-12
  • 打赏
  • 举报
回复
memcpy对系统不同有不同的优化,比如在奔腾上会使用32位汇编指令movsb比一个个字节不知快多少倍。
rockswang 2001-03-12
  • 打赏
  • 举报
回复
那么我自己编一个inline的岂不是更快?
仅仅用一个for循环,也不做类型转换和安全检查,
而且连参数的压栈和出栈也没有。
我现在编的程序对性能要求很高,可能会在一个很大的循环里有很多次内存拷贝操作,那么是不是我应该自己编一个?
inline void mymemcpy(char *dst, const char *src, size_t size) {
register int i = 0;
while (i++ < size) {
*dst++ = *src++;
}
}
这样效率更高吗?
sun2000 2001-03-12
  • 打赏
  • 举报
回复
当然高
这是块复制,不用过多的循环,这取决于机器和os(当然数据的位置也有一定的关系)
joke100 2001-03-12
  • 打赏
  • 举报
回复
memcpy的效率很高的,仅是内存块的赋值拷贝,没有做类型转换和安全检查等事情.
rockswang 2001-03-12
  • 打赏
  • 举报
回复
明白了,也就是说c运行库并不是用纯c写成的,我就是关心的这一点,
谢谢几位大侠,
没有补充的话我就给分了

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧