zoukankan      html  css  js  c++  java
  • memmove 对同一个指针不操作

    1、memmove 对同一个指针不操作,所以调用memmove之前不用比较两个指针是否相同

     2、使用memmove是比memcpy更安全的

    3、https://www.cnblogs.com/luoquan/p/5265273.html

    void CTestDLLDlg::OnBnClickedButton6()
    {
        const int size = 999999;
        char* data = new char[size];
        memset(data, 1, size - 1);
    
        char* data1 = new char[size];
        memset(data1, 'a', size - 1);
    
        clock_t begin = clock();
        for (int i = 0; i < size; ++i)
        {
            memmove(data1, data, size);
        }
        clock_t end = clock();
    
        double duration = 0;
        duration = (double)(end - begin) / CLOCKS_PER_SEC;
        CString str = _T("");
        str.Format(_T("-不同指针复制- %f---
    "), duration);
        OutputDebugString(str);
    
        clock_t begin1 = clock();
        for (int i = 0; i < size; ++i)
        {
            memmove(data1, data1, size);
        }
        clock_t end1 = clock();
    
        double duration1 = 0;
        duration1 = (double)(end1 - begin1) / CLOCKS_PER_SEC;
        CString str1 = _T("");
        str1.Format(_T("-同指针复制- %f---
    "), duration1);
        OutputDebugString(str1);
    
    
        clock_t begin2 = clock();
        for (int i = 0; i < size; ++i)
        {
        }
        clock_t end2 = clock();
    
        double duration2 = 0;
        duration2 = (double)(end1 - begin1) / CLOCKS_PER_SEC;
        CString str2 = _T("");
        str2.Format(_T("-空循环- %f---
    "), duration2);
        OutputDebugString(str2);
    
        delete data;
        data = nullptr;
    
        delete data1;
        data1 = nullptr;
    
    
    }

    显示结果是:

    -不同指针复制- 49.971000---
    -同指针复制- 38.833000---
    -空循环- 38.833000---

    将memmove换成memcpy,显示

    -不同指针复制- 49.782000---
    -同指针复制- 38.847000---
    -空循环- 38.847000---

    没觉得memcpy有多快

  • 相关阅读:
    [51nod1474]宝藏图
    web h5常用代码总结
    ionic app 热更新
    ionic3——ion-scroll无法使用scrollTo的问题
    git操作
    uniapp开发
    uniapp 之navigateTo:fail page 跳转路径不对
    微信小程序之登录用户不是该小程序的开发者
    ionic slide组件使用
    ionic使用自定义icon
  • 原文地址:https://www.cnblogs.com/XiHua/p/5077728.html
Copyright © 2011-2022 走看看