获取当前时间并且转化为字符串_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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三菱modbus rtu通讯实例_三菱modbusRTU通讯实例

    三菱modbus rtu通讯实例_三菱modbusRTU通讯实例FX系列作为三菱基本款的PLC,它们之间的通讯方式分别如下:CC-LINK,N:N网络连接,并联连接。1.CC-LINK连接CC-LINK连接图如下:对应的PLC可为FX1N、FX1NC、FX2N、FX2NC、FX3U、FX3UC,因为在使用CC-LINK通讯时要扩展CC-LINK模块,而FX1S没有扩展模块功能,故FX1S不能用于此通讯方式。2)FX1N/FX2N/FX3U即可以作为主站,也可以…

    2025年10月19日
    3
  • Linux操作系统shell脚本for循环示例

    Linux操作系统shell脚本for循环示例Linux操作系统shell脚本for循环示例示例01forain{1..3};dosshroot@192.168.11.$acat/root/.ssh/id_rsa.pub>>/root/.ssh/authorized_keys;done示例02forain{2..3};doscp/root/.ssh/authorized_keysroot@192.168.11$a:/root/.ssh/authorized_keys;done示

    2025年7月12日
    3
  • 手机app测试流程和方法_app测试方法和流程

    手机app测试流程和方法_app测试方法和流程1 APP测试基本流程1.1流程图1.2测试周期测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。1.3测试资源测试任务开始前,检查各项测试资源。–产品功能需求文档;–产品原型图;–产品效果图;–行为统计分析定义文档;–测试设备(i…

    2025年9月16日
    4
  • 自学 6 个月 Java 找到了一份 15K 的工作,师弟的方式值得推荐给大家

    自学 6 个月 Java 找到了一份 15K 的工作,师弟的方式值得推荐给大家我有一个大学校友,他是去年8月份才开始正式学习Java的,之前在一家私企工作了5年,工资一个月只有不到6000块,日子过得很苦逼,毕竟郑州的房贷压力也不小,公司就那么大,除非领导离职,否则根本看不到晋升的希望。他刚26岁,正值青春年华,我就劝他不如改学Java,他之前学PHP的,虽然做起来项目很快,但发展前景确实不怎么乐观。我身边的很多朋友在北京做Java开发,差不多能拿到2到3万的月薪,师弟听了非常羡慕,感觉超出了他的认知范围,就下定决心开始学习Java,一共学了大

    2022年6月22日
    46
  • 不是单组分组函数

    不是单组分组函数问题:一:SELECT tablespace_name, SUM(bytes) freeFROM dba_free_space不是单组分组函数原因: 1、如果程序中使用了分组函数,则有两种情况可以使用:程序中存在group by,并指定了分组条件,这样可以将分组条件一起查询出来改为:  SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spa…

    2022年6月30日
    37
  • (2021 最新版)IntelliJ IDEA 下载安装及配置教程

    (2021 最新版)IntelliJ IDEA 下载安装及配置教程前言因为自己电脑最近实在是太卡了,也一直提示更新,索性就直接重装了个系统。因为需要重装下IDEA,而现在新版本的IDEA和之前的版本还是有很大变化的,所以在这里写一篇博客做个记录,方便自己后续配置,也顺便分享给大家。准备工作既然要安装IDEA,那么首先需要前往JetBrains的官网下载最新版的IDEA,下载地址如下:https://www.jetbrains.com/idea/download/这里最新的版本是2021.1.2,而因为我有旗舰版的账号,所以这里就以旗舰版安装

    2022年5月20日
    917

发表回复

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

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