获取当前时间并且转化为字符串_python处理百万级数据时间

获取当前时间并且转化为字符串_python处理百万级数据时间linux 用户空间获得纳秒级时间ns【转】

大家好,又见面了,我是你们的朋友全栈君。

转自:https://www.cnblogs.com/kekukele/p/3662816.html

一、引言

我们在测试程序的性能的时候往往需要获得ns级的精确时间去衡量一个程序的性能,下面介绍下linux中用户空间获得ns级时间的方法

二、用户空间获得ns级时间

使用clock_gettime函数,函数原型如下:

    long sys_clock_gettime (clockid_t which_clock, struct timespec *tp);

    1.which_clock参数解释

      CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变

      CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响

      CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间

      CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间

    2.struct timespec结构

      

struct timespec
{
 time_t tv_sec;
 long int tv_nsec;
};

使用范例代码如下:

复制代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
   struct timespec time_start={0, 0},time_end={0, 0};
   clock_gettime(CLOCK_REALTIME, &time_start);
   printf("start time %llus,%llu ns\n", time_start.tv_sec, time_start.tv_nsec);
   clock_gettime(CLOCK_REALTIME, &time_end);
   printf("end   time %llus,%llu ns\n", time_end.tv_sec, time_end.tv_nsec);
   printf("duration:%llus %lluns\n", time_end.tv_sec-time_start.tv_sec, time_end.tv_nsec-time_start.tv_nsec);
   return 0;
}
复制代码

 

编译命令:

gcc test.c -o test -lrt

运行结果:

./test
start time 1397395863s,973618673 ns
end   time 1397395863s,973633297 ns
duration:0s 14624ns

从运行结果可以看出 调用printf()函数一次需要15us左右。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107188.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 传感器尺寸

    传感器尺寸传感器尺寸   图像传感器感光区域的面积大小。这个尺寸直接决定了   整个系统的物理放大率。如:1/3”、1/2”等。绝大多数   模拟相机的传感器的长宽比例是4:3(H:V),数字相机   的长宽比例则包括多种:1:1,16:9,3:2etc。   注意相机尺寸的1”=16mm≠25.4mm…

    2022年4月27日
    71
  • hdu 1286 (欧拉函数)

    hdu 1286 (欧拉函数)

    2021年8月11日
    63
  • Ant 下载、安装、使用、教程全面了解「建议收藏」

    Ant 下载、安装、使用、教程全面了解「建议收藏」Eclipse内置了Ant。Ant是一种类似于批处理程序的软件包,它主要繁琐的工作是编写和调试自动处理脚本(一个XML文件),但只要有了这个脚本,我们就可以一键完成所有的设定工作。本节还是以myswt这个应用程序项目的打包为例,用Ant来完成“编译->打成JAR包->复制项目引用库->复制本地化文件swt-win32-3063.dll->输出API文档”这五步

    2022年7月13日
    15
  • resnet34\resnet101网络结构图「建议收藏」

    resnet34\resnet101网络结构图「建议收藏」注释:7x7conv,3->64,/2表示7×7大小的卷积核,3、64表示输入输出通道,/2表示输出为原来的1/2。x2表示类似的结构还有两个。

    2022年10月6日
    3
  • python将字符串类型转换为数字_把字符串转化为数字

    python将字符串类型转换为数字_把字符串转化为数字MD5工具类,提供字符串MD5加密、文件MD5值获取&lpar;校验&rpar;功能MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能:packagecom.yzu.utils;importjava.io.File;importjava.io.Fi…GUI开发者桌面搜索文件工具#-*-coding:utf-8-*-fromTkint…

    2022年10月12日
    4
  • .bat文件打开方式[通俗易懂]

    .bat文件打开方式[通俗易懂]有的时候不小心将后缀名.bat文件在选择打开方式时误勾选了用记事本或者其他文本编辑器打开,结果电脑上的*.bat文件的打开方式都变成了记事本或者其他文本编辑器。本方法就是恢复.bat文件的默认打开方式。1、同时按住windows键和R键,在出来的框中输入regedit,打开注册表编辑器。2、找到:计算机\HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\currentversion\Explorer\FileExts.bat删除除了openwithlist

    2022年7月15日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号