C语言纳秒级计时

news2024/11/15 4:43:52

C语言纳秒级计时

文章目录

  • C语言纳秒级计时
    • 函数介绍
    • 示例代码
    • 参考

函数介绍

C语言中常用的clock()函数只能精确到毫秒级,对应的数据类型是clock_t

C11标准中提供了纳秒级别定时器:timespec_get()函数与timespec()类型。

struct timespec{
    time_t tv_sec ; // seconds
    long   tv_nsec; // nanoseconds
};

#define TIME_UTC 1  //time.h 头文件里面定义的,而且只有这一个

timespec类型有两个字段

  • time_t tv_sec为秒级计时
  • long tv_nsec为纳秒级计时

在这里插入图片描述

timespec_get()失败返回0。

示例代码

#include<iostream>
#include<time.h>

using namespace std;

int main(){
    clock_t start_ms, end_ms;         // 毫秒级计时
    struct timespec start_ns, end_ns; // 纳秒级计时 C11标准库
    
    start_ms = clock();
    timespec_get(&start_ns,TIME_UTC);
    
    // do something
    for(int i=0;i<1000;i++){
        for(int j=0;j<1000;j++) ; 
    }
    
    end_ms = clock();
    timespec_get(&end_ns,TIME_UTC);
    
    // output
    cout << "clock function: " << end_ms - start_ms << endl;
    cout << "timespec_get function: " << ((end_ns->tv_sec - start_ns->tv_sec) * 1e9 + (end_ns->tv_nsec - start_ns->tv_nsec)) / 1e6 << endl;
    return 0;
}

在这里插入图片描述

参考

  • C语言中文开发手册 https://m.php.cn/manual/view/34346.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1075056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

找不到msvcp140.dll导致代码无法继续执行 ,8个方法搞定msvcp140.dll文件缺失问题

首先&#xff0c;让我们了解一下 msvcp140.dll 文件。msvcp140.dll 是 Microsoft Visual Studio 2010 编译的程序所使用的动态链接库之一&#xff0c;它包含了一些 C标准库函数的实现&#xff0c;例如 std::vector、std::string 等。这个文件主要被用于支持 C程序的运行&#x…

计算机是如何启动的

一直好奇计算机启动的原理是怎么样的&#xff1f;最近刚好想搞一下操作系统&#xff0c;故此总结一下。 打开电源 对于现代计算机来说&#xff0c;打开电源是开机的第一步&#xff0c;这一点无用质疑&#xff0c;离开了电&#xff0c;现代社会估计就会垮台。 计算机启动 加电…

ctfshow-web9(奇妙的ffifdyop绕过)

尝试万能密码登录&#xff0c;没有任何回显 尝试扫描目录&#xff0c;这里不知道为啥御剑什么都扫不到&#xff0c;使用dirsearch可以扫到robots.txt 查看robots协议 访问下载index.phps 查看index.phps 简单审计一下php代码&#xff1a; $password$_POST[password]; if(strl…

Linux——多线程1

目录 一.理解线程的概念 Linux线程概念 二.线程的优点 三.线程的缺点 四.线程用途 五. Linux进程VS线程 一.理解线程的概念 教材观点&#xff1a; 线程是一种执行分支&#xff0c;执行粒度比进程更细&#xff0c;调度成本更低。线程是进程内部的一个执行流。 内核观点: …

【Python查找算法】二分查找、线性查找、哈希查找

目录 1 二分查找算法 2 线性查找算法 3 哈希查找算法 1 二分查找算法 二分查找&#xff08;Binary Search&#xff09;是一种用于在有序数据集合中查找特定元素的高效算法。它的工作原理基于将数据集合分成两半&#xff0c;然后逐步缩小搜索范围&#xff0c;直到找到目标元素…

python的一些知识点

之前自学过python&#xff0c;学了一些基本语法&#xff0c;但忘得厉害。最近&#xff0c;在努力地写代码&#xff0c;在学代码&#xff0c;写代码中学习python&#xff0c;为此记录一些关于python的知识点。

四、综合——通信系统

文章目录 一、通信系统概述1.1 通信的基本概念1.2 通信系统的组成二、信道的定义和分类三、信源编码四、调制一、通信系统概述 1.1 通信的基本概念 通信是发送者(人或机器)和接收者之间通过某种媒体进行的信息传递。广义来讲。光通信也属于电通信,因为光也是一种电磁波。 …

2023.10.09

#include <iostream>using namespace std;//定义一个类&#xff08;人&#xff09; class Per { private:string name;//姓名int age;//年龄//体重和身高另存堆空间double* height;//身高double* weight;//体重 public://定义构造函数&#xff0c;并且初始化//运用初始化…

【致敬未来的攻城狮计划】第2期 作业汇总贴 + 获奖公布

一、写在前面 时间过得真快&#xff0c;距离 【致敬未来的攻城狮计划】第2期 的发起&#xff0c;已经过去一个多月了&#xff0c;而第2期的真正学习考核期也将在5/13的18点整正式结束。 关于第2期的活动计划&#xff0c;感兴趣的可以参见这里&#xff1a;【重磅推出】《致敬未…

springboot项目中添加大屏页面

在非前后端分离的项目中根据项目需求需要添加一个大屏页面 解决方案&#xff1a; 参考&#xff1a;纯静态引入.vue文件之http-vue-loader.js - 知乎 我是把httpVueLoader.js 下载到本地引入 引入http-vue-loader.js 在vue代码中 components: { // 注意component 下name的命…

【C++】:日期类实现

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…

Kafka和RabbitMQ的对比

Rabbitmq比kafka可靠&#xff0c;kafka更适合IO高吞吐的处理&#xff0c;比如ELK日志收集 Kafka和RabbitMq一样是通用意图消息代理&#xff0c;他们都是以分布式部署为目的。但是他们对消息语义模型的定义的假设是非常不同的。 a) 以下场景比较适合使用Kafka。如果有大量的事…

C#操作PPT动画窗格并插入音频文件的一些思路

目录 系统环境 基础配置 设计想法 关键代码 组件库引入 基础代码 核心代码 总结 系统环境 在 Windows Server 2019 操作系统上安装Office PowerPoint 2016或以上 安装 .netFramework4.7.1以上 开发工具 VS2019 语言 C# 基础配置 打开控制面板、管理工具、组件服务…

LabVIEW使用VI Package Manager(VIPM)下载和管理附加组件

LabVIEW使用VI Package Manager&#xff08;VIPM&#xff09;下载和管理附加组件 LabVIEW Tools Network和VI Package Manager&#xff08;VIPM&#xff09;使浏览&#xff0c;下载和管理LabVIEW附加组件变得容易。它具有软件包存储库&#xff0c;可以从桌面连接到软件包&…

基于差分进化优化的BP神经网络(分类应用) - 附代码

基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.差分进化优化BP神经网络3.1 BP神经网络参数设置3.2 差分进化算法应用 4.测试结果…

基于原子搜索优化的BP神经网络(分类应用) - 附代码

基于原子搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于原子搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.原子搜索优化BP神经网络3.1 BP神经网络参数设置3.2 原子搜索算法应用 4.测试结果…

全面分析“找不到XINPUTI_3.dll无法继续执行代码”的5个解决方法总结

电脑已经成为我们生活&#xff0c;娱乐和工作中不可或缺的一部分&#xff0c;电子游戏是许多人的日常娱乐方式。然而&#xff0c;当我们沉浸在游戏的乐趣中时&#xff0c;有时会遇到一些问题&#xff0c;比如“找不到XINPUTI_3.dll”这样的错误提示。这种错误通常会导致游戏无法…

Android学习从入门到放弃(文末有福利)

移动开发早就不是最热门的程序员职业了&#xff0c;而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力 作为一个在Android开发领域积累了不少经验的开发者&#xff0c;自己也看了不少书&#xff0c;也和不少前辈交流过&#xff0c;在这里分享一…

98 # jwt

什么是 jwt JSON WEB TOKEN (jwt) 是目前最流行的跨域身份验证解决方案。 解决问题&#xff1a;session 不支持分布式框架&#xff0c;无法支持横向扩展&#xff0c;只能通过数据库来保存会话数据实现共享&#xff0c;如果持久层失效就会出现认证失败。 优点&#xff1a;服务…

强化学习问题(二)--- ERROR: Failed building wheel for box2d-py

错误&#xff1a;Could not build wheels for box2d-py, which is required to install pyproject.toml-based projects pyproject.toml-based projects&#xff1a;意思是缺少依赖包&#xff0c;对于box2d就是缺少swig 注意&#xff1a;安装python对应的swig版本 解决1&…