zoukankan      html  css  js  c++  java
  • 内存复制的速度居然和内存的内容相关

    memcpy 和 一个字节一个字节的复制的一个区别就是,memcpy 可以复制一个cpu 的字 而 单字节复制只能复制一个字节。

    但是,今天还发现了一个很重要的特点,复制的速度 还和 内存的内容相关,如果目标内存 和 当前内存的内容差不多,发现

    居然复制速度要快一些。

    这个是我在测试字符串复制的性能的时候发现的,可以参考我前面的文章。

    http://www.cnblogs.com/niniwzw/archive/2009/12/23/1630777.html

    前面文章中,我说的最后一种速度是 96ms, 是错误的。

    测试代码如下:

        t = clock();
        strcpy1(dest, src); //我的复制方法 140ms
        printf("%d ms\n", clock() - t);
        t = clock();
        strcpy(dest, src); //系统函数的复制方法  96ms
        printf("%d ms \n", clock() - t);


        t = clock();
        strcpy(dest, src); //系统函数的复制方法  140ms
        printf("%d ms \n", clock() - t);

        t = clock();
        strcpy1(dest, src); //我的复制方法 96ms
        printf(" %d ms\n", clock() - t);

    如果你测试一下 用memcpy,可以发现这 96ms就是memcpy复制这个内存区域的速度。

    具体原因不知道是为什么。哪位高手可以告诉我。

  • 相关阅读:
    LCT 动态树 模板
    [HNOI2010] 物品调度 fsk
    [HNOI2010] 矩阵 matrix
    [HNOI2010] 平面图判定 planar
    [HNOI2010] 公交线路 bus
    [HNOI2017]抛硬币
    [HNOI2010] 弹飞绵羊 bounce
    [HNOI2010] 合唱队 chorus
    [HNOI2017]礼物
    [HNOI2017]大佬
  • 原文地址:https://www.cnblogs.com/niniwzw/p/1634058.html
Copyright © 2011-2022 走看看