• menset的效率


    一.摘要

      memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。

    二.示例

     1 /**memset的效率对比*/
     2 #include<stdio.h>
     3 #include<string.h> 
     4 #include<time.h>
     5 #define Max 1000
     6 double begin[10000],end[10000];
     7 int data[Max][Max];
     8 double caculate(){
     9     int i;
    10     double sum=0;
    11     for(i=0;i<10000;i++){
    12         sum=sum+(end[i]-begin[i]);
    13     }
    14     return sum/10000/CLOCKS_PER_SEC*1000;//返回毫秒数 
    15 }
    16 int main(){
    17     int i,j,k;
    18     //统计menset()函数用时 
    19     memset(begin,0,sizeof(begin));
    20     memset(end,0,sizeof(end));
    21     for(k=0;k<10000;k++){
    22         begin[k]=clock();
    23         memset(data,0,sizeof(data));
    24         end[k]=clock();
    25     }
    26     printf("memset()函数平均用时:%fms
    ",caculate());
    27     //统计for循环用时 
    28     memset(begin,0,sizeof(begin));
    29     memset(end,0,sizeof(end));
    30     for(k=0;k<10000;k++){
    31         begin[k]=clock();
    32         for(i=0;i<Max;i++){
    33             for(j=0;j<Max;j++){
    34                 data[i][j]=0;
    35             }
    36         }
    37         end[k]=clock();
    38     }
    39     printf("for循环平均用时:%fms
    ",caculate());
    40     return 0;
    41 }

    三.结果

      测了N多遍,很明显,menset()初始化比for循环初始化快很多,for循环的用时大概是它的十倍左右;

      但是该测试还是有局限性,因为代码里只对 100*100 的数组进行初始化,对于其他规模的数组并没有测试,因此该测试仅供参考。

  • 相关阅读:
    Centos6.7 编译安装 MySQL教程
    python os os.path模块学习笔记
    Ubuntu无线转有线教程
    k8s 部署kube-dns
    k8s-应用快速入门(ma)
    kubectl工具管理应用生命周期
    k8s-部署WEB-UI(dashboard)
    k8s-集群状态及部署一个实例
    k8s-创建node节点kubeconfig配置文件
    k8s-flannel容器集群网络部署
  • 原文地址:https://www.cnblogs.com/chasemeng/p/12821348.html
Copyright © 2020-2023  润新知