当前位置: 首页 > news >正文

ngx_monotonic_time

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_monotonic_time函数-CSDN博客 

定义在 src\core\ngx_times.c

static ngx_msec_t
ngx_monotonic_time(time_t sec, ngx_uint_t msec)
{
#if (NGX_HAVE_CLOCK_MONOTONIC)
    struct timespec  ts;

#if defined(CLOCK_MONOTONIC_FAST)
    clock_gettime(CLOCK_MONOTONIC_FAST, &ts);
#else
    clock_gettime(CLOCK_MONOTONIC, &ts);
#endif

    sec = ts.tv_sec;
    msec = ts.tv_nsec / 1000000;

#endif

    return (ngx_msec_t) sec * 1000 + msec;
}

此时

NGX_HAVE_CLOCK_MONOTONIC=1

CLOCK_MONOTONIC_FAST 未定义


clock_gettime(CLOCK_MONOTONIC, &ts);

struct timespec 是 POSIX 标准中定义的时间结构体,包含两个字段:

tv_sec:秒数部分。
tv_nsec:纳秒部分(1 秒 = 10^9 纳秒)


调用 clock_gettime 函数,获取当前的单调时间,并将结果存储到 ts 中

是 POSIX 标准中定义的一个函数,用于获取高精度的时间信息。它能够从指定的时钟源(clock source)中读取当前时间,并以纳秒级精度返回结果

函数原型

#include <time.h>
 
int clock_gettime(clockid_t clk_id, struct timespec *tp);

clk_id :

指定时钟源(clock source),决定了时间的来源。

常见的时钟源包括:

CLOCK_REALTIME :系统实时时间(wall-clock time),可以被手动调整或通过 NTP 同步。

CLOCK_MONOTONIC :单调递增的时间,从某个固定点开始计时,不受系统时间调整的影响。

CLOCK_PROCESS_CPUTIME_ID :进程的 CPU 时间。

CLOCK_THREAD_CPUTIME_ID :线程的 CPU 时间。

CLOCK_BOOTTIME (Linux 特有):类似于 CLOCK_MONOTONIC,但包括系统休眠时间。

选择不同的时钟源会影响时间的用途。

tp :

指向一个 struct timespec 结构体的指针,用于存储获取到的时间信息。

返回值

成功时返回 0。
失败时返回 -1,并设置 errno 表示错误原因。


    sec = ts.tv_sec;
    msec = ts.tv_nsec / 1000000;


    return (ngx_msec_t) sec * 1000 + msec;

转换为 毫秒数 返回

此时

(ngx_msec_t) sec * 1000 + msec = 1530546474

相关文章:

  • Git Fetch 和 Git Pull 的区别
  • 双层板模组天线设计指南,50欧姆阻抗匹配设计
  • B-tree 索引失效 避坑指南
  • x265不同preset级别控制的编码参数与编码性能影响
  • BFS(广度优先搜索)
  • 使用DeepSeek API进行情感分析:超简单
  • c语言怎么处理字符串,与c++的区别
  • CentOS下安装Docker,Docker下安装JDK\MYSQL\REDIS\NGINX
  • 压测数据说话:如何用科学方法选择最优高防套餐?
  • 大数据技术之Scala:特性、应用与生态系统
  • MySQL - 索引原理与优化:深入解析B+Tree与高效查询策略
  • ‌粉笔屑里的星辰大海‌----灌南县第四中学九3班汤洁老师
  • harmony OS NEXT- HTTP 模块笔记
  • 【设计模式】享元模式
  • Transformer习题
  • 我开发了一款生成合成数据集的工具
  • 《C++ 函数相关技术解析》
  • 【Paper Tips】随记5-期刊投稿阶段说明
  • 低代码开发平台:企业数字化转型的加速器
  • Linux wifi 驱动移植适配流程详解
  • 建设网站多少钱/简述网络营销的概念
  • 建设电瓶车官方网站/网络营销专业是学什么的
  • 郑州便宜网站建设/网站推广公司电话
  • 做电影网站的服务器/南京seo优化培训
  • 局域网站建设模版/制作网站需要什么软件
  • 直接ip访问网站/网络舆情监测与研判