获取当前时间并且转化为字符串_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)
上一篇 2022年4月20日 下午11:20
下一篇 2022年4月20日 下午11:20


相关推荐

  • 海量数据处理之Bloom Filter详解

    海量数据处理之Bloom Filter详解海量数据处理之BloomFilter详解 前言   本博客内曾已经整理过十道海量数据处理面试题与十个方法大总结。接下来,本博客内会重点分析那些海量数据处理的方法,并重写十道海量数据处理的面试题。如果有任何问题,欢迎不吝指正。谢谢。一、什么是BloomFilter   BloomFilter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集

    2022年6月23日
    52
  • 弗曼技巧笔记

    弗曼技巧笔记弗曼技巧学习过程:选择一个概念 向其他人讲解这个概念 对讲解中出现的卡壳发现不懂的问题,回头去进一步学习学习过程中使用流程图,便于理解与记忆。弗曼技巧注重于正负反馈,有了正负反馈才能够对知识进行更好的理解。不同方式下学习内容留存率:弗曼技巧使用了最有效的方式—教授给他人。讲解的方式:可以依靠简化或类比的方式进行讲解,直到对方理解。…

    2022年6月14日
    35
  • 特殊文字符号小动物

    特殊文字符号小动物特殊符号[“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”,“????”]

    2022年5月22日
    99
  • react路由跳转

    react路由跳转React中几种页面跳转方式1、使用react-router-dom中的Link实现页面跳转一般适用于,点击按钮或其他组件进行页面跳转,具体使用方式如下:<Linkto={{pathname:’/path/newpath’,state:{//页面跳转要传递的数据,如下data1:{},data2:[]},}}><Butt

    2022年5月27日
    401
  • python获取文件名后缀名_python获取文件名不含后缀名

    python获取文件名后缀名_python获取文件名不含后缀名importosfile_path=”/home/admin/Desktop/test.py”filepath,tempfilename=os.path.split(file_path)filename,extension=os.path.splitext(tempfilename)filepath文件目录filename文件名extension文件扩展名…

    2025年11月18日
    5
  • xAI大清洗,Meta拟裁员20%,最难的还是一线员工

    xAI大清洗,Meta拟裁员20%,最难的还是一线员工

    2026年3月16日
    3

发表回复

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

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