linux time效率,time(),gettimeofday()及GetTickCount()效率比较
转自: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()效率比较相关推荐
- 掌握好这23个Linux命令常用命令,让工作效率翻倍
掌握好这23个Linux命令常用命令,让工作效率翻倍 文章目录: 我现在也非常勤奋,你知道,勤奋并不是什么了不起,关键是产品质量要高 --<朗读者>黄永玉 95岁 https://mp.w ...
- 效率评价方法--DEA评价效率方法
在使用DEA模型评价项目的效率时,需要注意下面的几个要点: 一.认识DEA模型和方法 ①首先,需求明确的是,DEA评价创新效率.经济效率或其他效率都是基于样本数据的强队有效性的分析.DEA模型英文名& ...
- 怎么用matlab测效率,【转载】MATLAB 效率分析
SimWe个人空间Q;cl\xQ%Li{ 于MATLAB的效率问题,很多文章,包括我之前写的一些,主要集中在使用向量化以及相关的问题上.但是,最近我在实验时对代码进行profile的过程中,发现在新版 ...
- linux大文件拷贝,Linux如何提高大文件的拷贝效率
Linux系统操作中,当你在进行机器直接的拷贝时,遇到大文件的时候非常浪费时间,特别是将文件同时拷贝到多台机器上的时候,那么有什么好的方法能够提高大文件的拷贝效率呢?一起来学习下吧. 你可以从源机器逐 ...
- 这些 Linux 技巧大大提高你的工作效率
Table of Contents 前言 命令编辑及光标移动 历史命令快速执行 实时查看日志 磁盘或内存情况查看 根据名称查找进程id 根据名称杀死进程 查看进程运行时间 快速目录切换 多条命令执行 ...
- linux 日志乱码_这些 Linux 技巧大大提高你的工作效率
(给Linux爱好者加星标,提升Linux技能) 作者:守望(本文来自作者投稿,简介见末尾) www.yanbinghu.com/2019/03/24/44171.html 前言 linux中的一些小 ...
- Intel 计划在Linux kernel中引入 User Interrupts,效率是eventfd的10倍
文章目录 未来Eventfd的替代品 User Interrupts 详细介绍什么是 User Interrupts 底层是如何工作的? 内核管理相关的数据结构 User IPI 应用接口 具体的例子 ...
- Linux Mint(Ubuntu)上 安装 效率神器 utools
我的 Windows 系统的笔记本只有 256G 固态,磁盘已经快用满了,最近想装个 Linux 玩玩,选择了 Linux Mint,然后就在闲置的移动硬盘上安装了 Linux Mint 21 cin ...
- mssql linux性能,MSSQL 的Top 和 MAX 效率测试
环境: MSSQL 2008, 都在没有使用缓存的情况下面执行 表中有8W 条记录 分类1有134条记录 分别测试了3个语句 -- A select 字段1 from 表1 WHERE Ftype=' ...
最新文章
- python使用joblib模块保存和加载机器学模型
- 产品管理:孵化产品 Beta 流程
- android多线程断点续传
- 什么是Asp.net Core?和 .net core有什么区别?
- 数据库基本概念 - 表、字段、sql语句
- js面向对象写法,一个小例子
- Photoshop显示RGB值问题
- fatal error LNK1169: 找到一个或多个多重定义的符号 的解决方案
- java nvarchar max_sql server中使用nvarchar(MAX)代替ntext
- Mac 入门教程:如何更改你的 Mac 设备名称
- web项目开发的基本流程
- 斐讯K2从第三方固件刷回原厂固件
- 【java入门】超基础的java入门知识,细节拉满
- python实现word批量转pdf
- 常用的机械3D设计软件大全
- 写得不错的一篇面试博文!
- python flask用户权限管理 接口访问权限思路
- Nature:肠道细菌能够调节果蝇运动行为
- 华为云服务登录显示服务器异常,云服务器异常登录应该怎么处理
- STM32模拟IIC读取PCF8563
热门文章
- 某传奇手游封包和数据分析
- CAXA 3D 实体设计2023 软件下载+补丁+安装教程
- 用python玩转数据第一周答案_用Python玩转数据_答案
- Windows安全防范手册
- Burnside引理的简要证明
- android编程高级教程 pdf,Android多媒体开发高级编程
- 序列召回基础+GRU4Rec论文阅读
- python程序语言和机器人控制系统_机器人十大流行编程语言,机器人编程系统以及方法...
- JSJ-3/AC220V时间继电器
- xp系统开启 服务器配置,xp系统开启 服务器配置