关于@淘宝日照问题的代码

@淘宝日照 提出了一个问题

问题:memset 1G的内存一次与memset 8个字节内存1G/8次哪个操作更快?

我的测试代码如下:


#include

#include "stdlib.h"
#include "string.h"
using namespace std;
static __inline__ unsigned long long rdtsc(void)
{
  unsigned hi, lo;
  __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
  return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
}
nt main(void)
{
        int mem_size = 16*1024*1024;
        char* ptr1 = (char*)malloc(mem_size);
        memset(ptr1,0x0,mem_size);


        unsigned long long now = rdtsc();
        memset(ptr1,0x1,mem_size);
        unsigned long long end = rdtsc();
        cout<<"use time:\t"<< end - now <         free(ptr1);
        char* ptr2 = (char*)malloc(mem_size);
        memset(ptr2,0x0,mem_size);
        now = rdtsc();
        int seg = mem_size/8;
        for(int i = 0;i         {
                memset(ptr2+i*8,0x2,8);
        }
        end = rdtsc();
        cout<<"use time:\t"<< end - now <         free(ptr2);
}

你可能感兴趣的:(关于@淘宝日照问题的代码)