memcpy执行效率测试,无效测试
生活随笔
收集整理的這篇文章主要介紹了
memcpy执行效率测试,无效测试
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <stdio.h>
#include<time.h>
#include<math.h>
#include <unistd.h>
clock_t start,stop;
//clock_t是clock()函數(shù)返回的變量類型
double duration;
//記錄被測試函數(shù)運(yùn)行時(shí)間,以秒為單位#define MAXK 1e7/*被測函數(shù)最大重復(fù)調(diào)用次數(shù)*/void computationtime(double start,double stop,int i)
{duration = ((double)(stop-start))/CLOCK_TAI/MAXK;/*計(jì)算函數(shù)單次運(yùn)行的時(shí)間*///計(jì)算運(yùn)行時(shí)間//其它不在測試范圍的處理寫在后面,例如輸出duration的值printf("ticks%d = %f\n",i,(double)(stop - start));printf("duration%d = %6.2e\n",i,duration);
}void *fq_memcpy(void *__dest, __const void *__src, size_t __n)
{int i = 0;unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src;for (i = __n >> 3; i > 0; i--) {*d++ = *s++;*d++ = *s++;*d++ = *s++;*d++ = *s++;*d++ = *s++;*d++ = *s++;*d++ = *s++;*d++ = *s++;}if (__n & 1 << 2) {*d++ = *s++;*d++ = *s++;*d++ = *s++;*d++ = *s++;}if (__n & 1 << 1) {*d++ = *s++;*d++ = *s++;}if (__n & 1)*d++ = *s++;return __dest;
}void *fq2_memcpy(void *dest, const void *src, size_t n)
{int i;const char *s = src;char *d = dest;for (i = 0; i < n; i++)d[i] = s[i];return dest;
}int main(void)
{char * a = "0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ,0123456789ABCDEFGHJKLMNOPQRSTUVWXYZ";char b[1024];char c[1024];unsigned int i = 0;start = clock();//開始計(jì)時(shí)for(i=0;i<10*1024;i++)fq_memcpy(c,a,1024);stop = clock();//停止計(jì)時(shí)computationtime(start,stop,1);start = clock();//開始計(jì)時(shí)for(i=0;i<10*1024;i++)fq2_memcpy(b,a,1024);stop = clock();//停止計(jì)時(shí)computationtime(start,stop,1);return 0;
}
總結(jié)
以上是生活随笔為你收集整理的memcpy执行效率测试,无效测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这十个Python实战项目,让你瞬间读懂
- 下一篇: 【GIT】git 提交代码正确步骤