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

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

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

我的测试代码如下:


#include <iostream>

#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 <<endl;
        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<seg;++i)
        {
                memset(ptr2+i*8,0x2,8);
        }
        end = rdtsc();
        cout<<"use time:\t"<< end - now <<endl;
        free(ptr2);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值