演算法優化 strcpy

2021-04-01 20:12:58 字數 1131 閱讀 8459

在很多時候,我們都會使用的strcpy這個函式,我們跟蹤c語言庫的話,會發現它是用彙編寫的。按道理來說效率應該很高,但是我寫了幾個strcpy的函式測試了一下:

char *strcpy1(char *dest, const char *src)

這個是一般的做法,我想大家都能想到。

char *strcpy2(char *dest, const char *src)

strcpy2的優點是少了乙個變數i,可以少乙個運算。

char *strcpy3(char *dest, const char *src)

這個是我自己寫的,也是要推薦了,要知道mencpy的效率要比按位元組拷貝快的多的多。

下面我們用**來測試一下效率:

#include

#include

#include

#include

void main()

dword dwend = gettickcount();

printf("%d", dwend-dwstart);

}我們分兩塊測試,第一塊是小段字串拷貝,如上面的200個位元組。然後我們測試一下10m位元組的,當然迴圈次數只用100次就夠了。

release下測試結果如下:

函式              20位元組                      200位元組                    10m

strcpy              3734                      1734                           2265

strcpy1           2015                       1391                           4219

strcpy2           1953                       1453                           3937

strcpy3           2422                       984                               1890

所以說c標準庫的不一定是最快的。

最後請大家在debug下跑一下看看,你會有新的驚喜,反正我還沒有搞清楚是為什麼

演算法 演算法優化

傳統最優化方法的設計思想主要是通過傳統的序列計算實現的,無法與硬體的並行架構完美相容,這降低了傳統最優化方法在具有大資料背 計算為核心的分布式優化應運而生,這也使得最優化方法得到了比以往任何時候都更加廣泛的應用。平行計算要首先把乙個問題分解成若干個可以同時計算的子問題 部分 並將每個子問題進一步細分...

python優化演算法 python 優化演算法

設k k,n 是從金鑰k開始的長度為n的唯一數的個數.然後,k k,n 1 sum k i,n 其中i在可以從鍵k跳轉到的鍵的範圍內.這可以使用動態程式設計有效地計算 這是一種占用o n 時間和o 1 空間的方法 jumpmap map int,x for x in 46,68,79,48,039,...

演算法優化 遞迴演算法的優化策略

在處理演算法問題時候,用的非常多的一種策略就是遞迴演算法了。但是遞迴演算法雖然簡單有效,但是該演算法的演算法效果總是有點差強人意。本文主要講述從兩個方向優化遞迴演算法,希望本文能給讀者一些thinking。持續更新中 總結 示例 遞迴演算法我又把它稱為迭代演算法,因為大致思路都差不多 迭代 從已知推...