转自:http://1.guotie.sinaapp.com/?p=157

time()和gettimeofday()是linux的系统调用,GetTickCount()是windows的函数。

time:返回至1970-1-1 00:00:00至今的秒数;

gettimeofday:除了返回秒数外,还有纳秒数,用于更精确的计时;

GetTickCount:返回系统启动至今的毫秒数

使用三个函数,分别调用1千万次,测试结果如下:

time:约967毫秒;

gettimeofday:约1800毫秒;

GetTickCount:约70毫秒;

可见,GetTickCount要快很多很多,在linux系统下,频繁使用time及gettimeofday严重影响效率。

参考资料:

文中给出了在linux下获得毫秒级时间的思路,并给出了相关代码。

测试代码如下:

linux:

[c]

#include

#include

#include

#define TEST_LOOPS 10000000

int main()

{

time_t tm;

struct timeval tv1, tv2, tv_test;

int i;

gettimeofday(&tv1, NULL);

for(i = 0; i < TEST_LOOPS; i ++)

{

gettimeofday(&tv_test, NULL);

}

gettimeofday(&tv2, NULL);

printf("run gettimeofday %u times, used %u usec.\n", TEST_LOOPS,

(tv2.tv_sec – tv1.tv_sec) * 1000000 +

tv2.tv_usec – tv1.tv_usec);

gettimeofday(&tv1, NULL);

for(i = 0; i < TEST_LOOPS; i ++)

{

time(&tm);

}

gettimeofday(&tv2, NULL);

printf("run time %u times, used %u usec.\n", TEST_LOOPS,

(tv2.tv_sec – tv1.tv_sec) * 1000000 +

tv2.tv_usec – tv1.tv_usec);

return 0;

}

[/c]

windows:

[c]

// tick.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include "Windows.h"

#define TEST_LOOPS 10000000

int _tmain(int argc, _TCHAR* argv[])

{

int i = 0;

unsigned int tv1, tv2, tv_test;

tv1 = GetTickCount();

for(; i < TEST_LOOPS; i ++)

{

tv_test = GetTickCount();

}

tv2 = GetTickCount();

printf("run GetTickCount %u times, used %u msec, current tick: %u.\n",

TEST_LOOPS, tv2 – tv1, tv2);

return 0;

}

[/c]

linux time效率,time(),gettimeofday()及GetTickCount()效率比较相关推荐

  1. 掌握好这23个Linux命令常用命令,让工作效率翻倍

    掌握好这23个Linux命令常用命令,让工作效率翻倍 文章目录: 我现在也非常勤奋,你知道,勤奋并不是什么了不起,关键是产品质量要高 --<朗读者>黄永玉 95岁 https://mp.w ...

  2. 效率评价方法--DEA评价效率方法

    在使用DEA模型评价项目的效率时,需要注意下面的几个要点: 一.认识DEA模型和方法 ①首先,需求明确的是,DEA评价创新效率.经济效率或其他效率都是基于样本数据的强队有效性的分析.DEA模型英文名& ...

  3. 怎么用matlab测效率,【转载】MATLAB 效率分析

    SimWe个人空间Q;cl\xQ%Li{ 于MATLAB的效率问题,很多文章,包括我之前写的一些,主要集中在使用向量化以及相关的问题上.但是,最近我在实验时对代码进行profile的过程中,发现在新版 ...

  4. linux大文件拷贝,Linux如何提高大文件的拷贝效率

    Linux系统操作中,当你在进行机器直接的拷贝时,遇到大文件的时候非常浪费时间,特别是将文件同时拷贝到多台机器上的时候,那么有什么好的方法能够提高大文件的拷贝效率呢?一起来学习下吧. 你可以从源机器逐 ...

  5. 这些 Linux 技巧大大提高你的工作效率

    Table of Contents 前言 命令编辑及光标移动 历史命令快速执行 实时查看日志 磁盘或内存情况查看 根据名称查找进程id 根据名称杀死进程 查看进程运行时间 快速目录切换 多条命令执行 ...

  6. linux 日志乱码_这些 Linux 技巧大大提高你的工作效率

    (给Linux爱好者加星标,提升Linux技能) 作者:守望(本文来自作者投稿,简介见末尾) www.yanbinghu.com/2019/03/24/44171.html 前言 linux中的一些小 ...

  7. Intel 计划在Linux kernel中引入 User Interrupts,效率是eventfd的10倍

    文章目录 未来Eventfd的替代品 User Interrupts 详细介绍什么是 User Interrupts 底层是如何工作的? 内核管理相关的数据结构 User IPI 应用接口 具体的例子 ...

  8. Linux Mint(Ubuntu)上 安装 效率神器 utools

    我的 Windows 系统的笔记本只有 256G 固态,磁盘已经快用满了,最近想装个 Linux 玩玩,选择了 Linux Mint,然后就在闲置的移动硬盘上安装了 Linux Mint 21 cin ...

  9. mssql linux性能,MSSQL 的Top 和 MAX 效率测试

    环境: MSSQL 2008, 都在没有使用缓存的情况下面执行 表中有8W 条记录 分类1有134条记录 分别测试了3个语句 -- A select 字段1 from 表1 WHERE Ftype=' ...

最新文章

  1. python使用joblib模块保存和加载机器学模型
  2. 产品管理:孵化产品 Beta 流程
  3. android多线程断点续传
  4. 什么是Asp.net Core?和 .net core有什么区别?
  5. 数据库基本概念 - 表、字段、sql语句
  6. js面向对象写法,一个小例子
  7. Photoshop显示RGB值问题
  8. fatal error LNK1169: 找到一个或多个多重定义的符号 的解决方案
  9. java nvarchar max_sql server中使用nvarchar(MAX)代替ntext
  10. Mac 入门教程:如何更改你的 Mac 设备名称
  11. web项目开发的基本流程
  12. 斐讯K2从第三方固件刷回原厂固件
  13. 【java入门】超基础的java入门知识,细节拉满
  14. python实现word批量转pdf
  15. 常用的机械3D设计软件大全
  16. 写得不错的一篇面试博文!
  17. python flask用户权限管理 接口访问权限思路
  18. Nature:肠道细菌能够调节果蝇运动行为
  19. 华为云服务登录显示服务器异常,云服务器异常登录应该怎么处理
  20. STM32模拟IIC读取PCF8563

热门文章

  1. 某传奇手游封包和数据分析
  2. CAXA 3D 实体设计2023 软件下载+补丁+安装教程
  3. 用python玩转数据第一周答案_用Python玩转数据_答案
  4. Windows安全防范手册
  5. Burnside引理的简要证明
  6. android编程高级教程 pdf,Android多媒体开发高级编程
  7. 序列召回基础+GRU4Rec论文阅读
  8. python程序语言和机器人控制系统_机器人十大流行编程语言,机器人编程系统以及方法...
  9. JSJ-3/AC220V时间继电器
  10. xp系统开启 服务器配置,xp系统开启 服务器配置