memmove 對同一個指針不操作

memmove 對同一個指針不操作,所以調用memmove之前不用比較兩個指針是否相同

?

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---\n"), 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---\n"), 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---\n"), 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有多快

?

轉載于:https://www.cnblogs.com/XiHua/p/5077728.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458520.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458520.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458520.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

.Net JIT

.Net JIT(轉) JIT 轉載于:https://www.cnblogs.com/HelloMyWorld/p/5501135.html

Hadoop HDFS概念學習系列之HDFS升級和回滾機制(十二)

不多說&#xff0c;直接上干貨&#xff01; HDFS升級和回滾機制 作為一個大型的分布式系統&#xff0c;Hadoop內部實現了一套升級機制&#xff0c;當在一個集群上升級Hadoop時&#xff0c;像其他的軟件升級一樣&#xff0c;可能會有新的bug或一些會影響現有應用的非兼容性變更出…

TCP協議的特性

TCP協議的特性&#xff1a;建立連接&#xff1a;三次握手將數據打包成段&#xff1a;校驗和&#xff08;CRC32&#xff09;確認、重傳及超時排序&#xff1a;邏輯序號流量控制&#xff1a;滑動窗口算法擁塞控制&#xff1a;慢啟動和擁塞便面算法轉載于:https://blog.51cto.com/…

屬性動畫基礎之ValueAnimator

概述 屬性動畫是谷歌在android3.0&#xff08;API level 11&#xff09;時候給我們帶來了屬性動畫&#xff0c;真正意義上帶來了”動畫“&#xff0c;以前的幀動畫也就4中效果的組合&#xff08;旋轉、淡入淡出、放大縮小、平移&#xff09;&#xff0c;而且只是表面的動畫&…

經驗之談:10位頂級PHP大師的開發原則

導讀&#xff1a;在Web開發世界里&#xff0c;PHP是最流行的語言之一&#xff0c;從PHP里&#xff0c;你能夠很容易的找到你所需的腳本&#xff0c;遺憾的是&#xff0c;很少人會去用“最佳做法”去寫一個PHP程序。這里&#xff0c;我們向大家介紹PHP的10種最佳實踐&#xff0c…

#Pragma Pack(n)與內存分配 pragma pack(push,1)與#pragma pack(1)的區別

from&#xff1a;http://blog.csdn.net/mylinx/article/details/7007309 #pragma pack(n) 解釋一&#xff1a; 每個特定平臺上的編譯器都有自己的默認“對齊系數”(也叫對齊模數)。程序員可以通過預編譯命令#pragma pack(n)&#xff0c;n1,2,4,8,16來改變這一系數&#xff0c;…

ShowDoc的搭建

其實&#xff0c;官方文檔也說的很清楚了。主要貼一下我遇見的問題。環境&#xff1a;LNMP&#xff08;LAMP沒試過&#xff0c;有興趣的同學可以試試&#xff0c;然后發出來&#xff09;PHP5.3以上版本、php-mbstring模塊、php-pdo模塊、mysql數據庫克隆或者下載代碼&#xff1…

BroadcastReceiver

本文介紹Broadcast Receiver&#xff0c;包括幾部分內容&#xff1a;Broadcast Receiver概述及實例、自定義Broadcast Receiver、Broadcast Receiver的實現細節、生命周期等。 csdn貌似今天出問題了&#xff0c;無法上傳圖片。 資料來源&#xff1a;最牛網&#xff0c;《官方解…

如何確定VS編譯器版本--_MSC_VER || #if _MSC_VER 1000 #pragma once #endif

如何確定VS編譯器版本 _MSC_VER是MSVC編譯器的內置宏&#xff0c;定義了編譯器的版本&#xff0c;_MSC_VER 值對應版本關系 MSVC 11.0 _MSC_VER 1700 (Visual Studio 2012) MSVC 10.0 _MSC_VER 1600 (Visual Studio 2010) MSVC 9.0 _MSC_VER 1500 (Visual Studio 2008) …

NIO復習02

Selector 1. Selector&#xff08;選擇器&#xff09;是Java NIO中能夠檢測一到多個NIO通道&#xff0c;并能夠知曉通道是否為諸如讀寫事件做好準備的組件。這樣&#xff0c;一個單獨的線程可以管理多個channel&#xff0c;從而管理多個網絡連接。 2. Selector的創建&#xff1…

c/c++標準預定義宏

C標準中的一些預定義宏昨天寫代碼時需要在代碼獲取當前編譯時間&#xff0c;從而可動態地作為版本信息&#xff0c;因此用到了C標準中的一些預定義的宏。在此將C標準中定義的幾個宏一并總結一下&#xff1a; __DATE__ 進行預處理的日期&#xff08;“Mmm dd yyyy”形式的字符串…

安裝cocoa pods時出現Operation not permitted - /usr/bin/xcodeproj的問題

在更新完ruby&#xff0c;更換Ruby鏡像&#xff0d;&#xff0d;淘寶的那個鏡像(https://ruby.taobao.org/ )已經不可用了。官方的需要FQ。所以我們現在用最新支持的ruby鏡像(https://gems.ruby-china.org/) 安裝cocoa pods時&#xff0c; 在命令行中輸入&#xff1a; 安裝&…

js 日期控件laydate使用

官網 http://sentsin.com/layui/laydate/ 1. 下載官網上的壓縮包,解壓后只需要復制laydate 文件夾到你的項目中; 2. 在頁面引入 <script type"text/javascript" src"js/laydate/laydate.js"></script> 3. 在頁面添加: <div class"i…

老李推薦:第8章2節《MonkeyRunner源碼剖析》MonkeyRunner啟動運行過程-解析處理命令行參數 2...

我們這一節會先去分析下monkeyrunner是如何對參數進行處理的&#xff0c;我們跳轉到MonkeyRunnerOptions這個類里面的processOptions這個方法&#xff1a; 93 public static MonkeyRunnerOptions processOptions(String[] args) 94 { 95 int index 0; 96 97 Strin…

MFC CPropertySheet 多頁面切換 實例

為了能實現在同一個頁面實現多個頁面的切換效果。CPropertySheet要與CPropertyPage一起使用。 首先 新建一個MFC工程--MFC AppWizard(exe), 取名Pagesheet, 選擇Dialog based, 然后Finish. 2. 在對話框資源中插入兩個對話框IDD_DIALOG1、IDD_DIALOG2&#xff0c;作為…

ReactiveCocoa簡單介紹

ReactiveCocoa 的簡單介紹 http://www.jianshu.com/p/87ef6720a096

游戲提高性能 游戲降幀處理

什么是降幀&為什么降幀 一般情況下我們為了提高整個游戲的體驗&#xff0c;所以我們一般會將游戲的幀數&#xff08;每秒鐘刷新多少次&#xff09;設置的比較高。一般情況下&#xff0c;我們的游戲所有的代碼都是一幀執行一次。為了讓每一幀都變成真的關鍵數據幀。不過&…