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

计算耗时为微秒的方法(包含:时/分/秒/毫秒/微秒/纳秒)

计算耗时为微秒的方法1

#include<stdio.h>
#include <windows.h>
int main() {int a[10002];int i = 0;double run_time;_LARGE_INTEGER time_start;	//开始时间_LARGE_INTEGER time_over;	//结束时间double dqFreq;		//计时器频率LARGE_INTEGER f;	//计时器频率QueryPerformanceFrequency(&f);dqFreq=(double)f.QuadPart;QueryPerformanceCounter(&time_start);	//计时开始for( i = 1; i <= 10000; i++)a[i]=i;	//要计时的程序QueryPerformanceCounter(&time_over);	//计时结束run_time=1000000*(time_over.QuadPart-time_start.QuadPart)/dqFreq;//乘以1000000把单位由秒化为微秒,精度为1000 000/(cpu主频)微秒printf("\nrun_time:%fus\n",run_time);return 0;
}

计算耗时为微秒的方法2

#include <QDateTime>int main()
{// 获取当前时间QDateTime startTime = QDateTime::currentDateTime();// 执行需要计时的代码// ...// 获取当前时间QDateTime endTime = QDateTime::currentDateTime();// 计算执行时间qint64 elapsedTime = startTime.msecsTo(endTime);qDebug() << "Elapsed time: " << elapsedTime << " microseconds";return 0;
}

在上述代码中,使用了 QDateTime 类来获取当前时间,然后计算执行时间,最后输出结果。通过使用 msecsTo() 方法可以获取毫秒级别的时间差,然后可以将其转换为微秒级别。

方法3--QTime

#include <QTime>// 计算代码执行时间并返回微秒
int calcExecTime() {QTime timer;timer.start();// 这里放需要计时的代码// ...return timer.elapsed();
}// 示例代码
int main() {int elapsed = calcExecTime();qDebug() << "代码执行时间:" << elapsed << "微秒";return 0;
}

在上面的代码中,我们使用了Qt的QTime类来计算代码执行时间。在函数calcExecTime()中,我们使用timer.start()开始计时,然后运行需要计时的代码,最后使用timer.elapsed()返回代码执行时间。在主函数中,我们调用calcExecTime()并打印出代码执行时间即可。

方法4---使用C++标准库中的chrono库来计算耗时

#include <iostream>
#include <chrono>int main() {auto start = std::chrono::high_resolution_clock::now(); // 记录开始时间// 执行需要计时的代码int sum = 0;for (int i = 0; i < 1000000; ++i) {sum += i;}auto end = std::chrono::high_resolution_clock::now(); // 记录结束时间auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start); // 计算耗时std::cout << "耗时:" << duration.count() << "微秒" << std::endl; // 输出耗时return 0;
}

其中:

std::chrono::high_resolution_clock是C++标准库提供的一个高精度时钟,可以在微秒、纳秒级别上测量时间。

std::chrono::duration_cast函数可以将时间差转换为指定单位的时间长度。

以上代码中,startend分别记录了需要计时代码的开始和结束时间,计算出时间差之后再通过duration.count()获取总的耗时,单位为微秒。

注意:

如果不想用auto start/end ,那可以改成

std::chrono::time_point<std::chrono::steady_clock> start=std::chrono::high_resolution_clock::now();std::chrono::time_point<std::chrono::steady_clock> end=std::chrono::high_resolution_clock::now();

方法5-QT中使用C++语言计算耗时的示例代码。使用QElapsedTimer来计算代码块的执行时间,精确到微秒

#include <QCoreApplication>
#include <QElapsedTimer>
#include <iostream>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QElapsedTimer timer;timer.start();// 计算代码块的执行时间long long sum = 0;for (int i = 0; i < 100000000; i++) {sum += i;}// 输出执行时间,单位为微秒std::cout << "Time elapsed: " << timer.nsecsElapsed() / 1000 << "us" << std::endl;return a.exec();
}

在这个示例中,我们使用了一个for循环,计算从0到99999999的所有整数的总和。在计算完成后,我们使用nsecsElapsed()函数来获取代码块的执行时间,单位为纳秒,将其除以1000转换为微秒。

其中,QElapsedTimer类可以在头文件<QElapsedTimer>中找到,使用方法如下:

  1. 调用start()方法开始计时;
  2. 执行耗时操作;
  3. 调用nsecsElapsed()方法获取耗时时间(单位为纳秒);
  4. 将纳秒数除以1000得到微秒数。

最后,将计算得到的微秒数输出即可。

相关文章:

计算耗时为微秒的方法(包含:时/分/秒/毫秒/微秒/纳秒)

计算耗时为微秒的方法1 #include<stdio.h> #include <windows.h> int main() {int a[10002];int i 0;double run_time;_LARGE_INTEGER time_start; //开始时间_LARGE_INTEGER time_over; //结束时间double dqFreq; //计时器频率LARGE_INTEGER f; //计时器频率Qu…...

通过 Python 封装关键词搜索阿里巴巴商品api接口

以下是使用 Python 封装关键词搜索阿里巴巴商品列表数据的步骤&#xff1a; 使用 requests 库向阿里巴巴搜索接口发送 HTTP 请求&#xff0c;可以使用 GET 或 POST 方法&#xff0c;请求参数中应包含搜索关键词、每页展示数量、当前页码等信息。 解析返回的 response 中的 HTM…...

分布式光伏消纳的微电网群共享储能配置策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

C语言写网络爬虫总体思路

使用C语言编写爬虫可以实现网络数据的快速获取和处理&#xff0c;适用于需要高效处理海量数据的场景。与其他编程语言相比&#xff0c;C语言具有较高的性能和灵活性&#xff0c;可以进行底层操作和内存管理&#xff0c;适合处理较复杂的网络请求和数据处理任务。 但是&#xf…...

机器学习实战六步法之训练模型、优化模型、部署模型(七)

要落地一个机器学习的项目&#xff0c;是有章可循的&#xff0c;通过这六个步骤&#xff0c;小白也能搞定机器学习。 看我闪电六连鞭&#xff01;&#x1f923; 训练模型 当确定好机器学习算法之后&#xff0c;就可以通过训练数据集中的特征和标签&#xff0c;根据样本数据的…...

《C++高级编程》读书笔记(七:内存管理)

1、参考引用 C高级编程&#xff08;第4版&#xff0c;C17标准&#xff09;马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门&#xff0c;笔记链接如下 21天学通C读书笔记&#xff08;文章链接汇总&#xff09; 1. 使用动态内存 1.1 如何描绘内存 在本书中&#xff0c;内存单…...

Scrum团队的三个角色

Scrum团队中包括三个角色&#xff0c;他们分别是产品负责人、开发团队和 Scrum Master。 Scrum 团队是自组织、跨职能的完整团队。自组织团队决定如何最好地完成他们的工作,而不是由团队外的其他人来指挥他 们。 跨职能的团队拥有完成工作所需要的全部技能,不需要依赖团队外部…...

python环境中使用 requirement.txt 安装依赖

在 Python 项目中&#xff0c;我们通常使用 requirement.txt 文件记录项目所依赖的第三方库&#xff0c;以便在其他机器上部署项目时更方便地安装这些依赖。在使用 requirement.txt 安装依赖时&#xff0c;可以按照以下步骤进行&#xff1a; 安装 pip 要使用 requirement.txt…...

UE5 材质常用大全

名称快捷方式类别计算方式/简介用法/说明Contant1+鼠标左键基础常量定义浮点数,与多通道运算时,自动影响多通道。各种基础参数Constant2Vector2+鼠标左键基础常量2维向量,2通道,影响2个通道。R/G,用于调整UVConstant3Vector3+鼠标左键基础常量3维向量,3通道,影响3个通道R…...

笔记本安装centos操作系统

一、下载centos镜像 centos官方历史版本&#xff1a;Index of / 常用的镜像文件类型介绍&#xff1a; DVD ISO&#xff1a;普通光盘完整安装版镜像&#xff0c;可离线安装到计算机硬盘上&#xff0c;包含大量的常用软件&#xff08;一般选择这种jing&#xff09;。 Everythi…...

Polarion工作流插件(自定义)

创建插件命名插件配置插件Condition&Function package com.polarion.capital.example.conditions;import com.polarion.alm.tracker.model.IWorkItem; import com.polarion.alm.tracker.workflow.IArguments; import com.polarion.alm.tracker.workflow.ICallContext; impo…...

JavaScript库:jQuery,简化编程

1. jQuery介绍 官方网站 : https://jquery.com jQuery 是一个 JavaScript 库 。极大地简化了 JavaScript 编程&#xff0c;例如 JS 原生代码几十行 实现的功 能&#xff0c; jQuery 可能一两行就可以实现&#xff0c;因此得到前端程序猿广泛应用。 发展至今&#xff0…...

[springboot]菜鸟学习- JdbcTemplate用法浅尝

JdbcTemplate 是 Spring Framework 提供的一个非常强大的 JDBC 工具类&#xff0c;它可以显著简化 JDBC 编程的代码量&#xff0c;并提供了许多便捷的方法来执行 SQL 查询、更新等操作。 使用 JdbcTemplate 的步骤如下&#xff1a; 1. 创建 JdbcTemplate 对象&#xff1a;可以…...

11.无监督学习之主成分分析

11.1 降维 降维的两种应用&#xff1a;一是数据压缩&#xff1b;二是可视化数据。 11.1.1 数据压缩 将相关性强的两个特征导致冗余&#xff0c;可以直接去掉其中一个特征&#xff0c;或者将两个特征进行某种转换&#xff0c;得到一个特征。 11.1.2 可视化数据 直接看数据可…...

「HTML和CSS入门指南」figcaption 标签详解

什么是 figcaption 标签? 在 HTML 中,figcaption 标签用于为与 figure 元素相关的媒体内容提供说明性文本。通常用于包含图像、音频或视频等媒体元素的说明文本。 figcaption 标签的基本语法 以下是 figcaption 标签的基本语法: <figure><!-- 在这里放置您的媒体…...

电子企业实施数字化工厂建设之前,需要注意哪些

随着工业4.0时代的到来&#xff0c;数字化工厂建设已成为越来越多电子企业的重要议题。数字化工厂管理系统能够提高生产效率、降低成本、提高产品质量等多个方面的优势&#xff0c;对于企业的可持续发展具有重要意义。然而&#xff0c;在实施电子企业数字化工厂建设之前&#x…...

迅捷pdf实现多页插入

之前我们使用福昕阅读器实现了在每一页插入logo 这里我们用迅捷pdf再来一次&#xff0c;别问&#xff0c;问就是公司买了会员 首先声明&#xff0c;这里已经有会员了&#xff0c;所以不知道别人操作是不是需要会员&#xff0c;担心的话可以看看上一篇福昕阅读器版本 打开编辑…...

调用阿里云API实现证件照生成

目录 1. 作者介绍2. 算法介绍2.1 阿里云介绍2.2 证件照生成背景2.3 图像分割算法 3.调用阿里云API进行证件照生成实例3.1 准备工作3.2 实验代码3.3 实验结果与分析 参考&#xff08;可供参考的链接和引用文献&#xff09; 1. 作者介绍 王逸腾&#xff0c;男&#xff0c;西安工…...

PHP 转换 excel中读取的时间

首先&#xff0c;我们需要知道PHPExcel的时间和日期格式是以Excel内部的“1900年1月1日”为基础&#xff0c;以天为单位来计算的。即Excel日期与PHP时间戳之间存在一个时间偏移量。通过查阅PHPExcel的官方文档&#xff0c;我们可以得到以下的计算公式&#xff1a; // 读取exce…...

Cmake工具的简单使用

引言 本篇文章讲述如何简单的使用cmake工具构建一个项目&#xff0c;帮助入门的c新手学会如何使用cmake. 我们在Clion新创建一个项目时&#xff0c;会发现&#xff0c;除了main.cpp文件之外&#xff0c;还存在一个build-debug目录和一个CMakelists.txt文件&#xff0c;如图: …...

html选择器

基本选择器 基本选择器 : 标签选择器 , 类选择器 , ID选择器 标签选择器 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEed…...

Leetcode 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 设计一个支持在平均 时间复杂度 O(1) 下&#xff0c;执行以下操作…...

django实现读取数据导出生成excel表格

目录 一、简单示例&#xff1a; 1.创建文件对象&#xff1a; 2.添加工作表&#xff1a; 3.写入数据&#xff1a; 二、实践出真理 需要先安装xlwt模块 pip install -i https://pypi.douban.com/simple xlwt一、简单示例&#xff1a; import xlwt# 创建一个Excel文件对象 …...

DevOps系列文章之 Docker-compose

一&#xff0c;Docker-compose全集 1&#xff0c;Docker-compose简介 Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是工程&#xff08;project&#xff09;&#xff0c…...

Vue Router入门:轻松构建单页应用程序

Vue.js是一种流行的前端JavaScript框架,可以让开发人员轻松构建动态用户界面。Vue.js的一个关键特性是其路由系统,它使得开发人员可以轻松创建具有多个视图和页面的单页应用程序(SPA)。在本文中,我们将探讨如何使用Vue Router在Vue.js中构建SPA。我们将介绍如何安装和配置…...

ITSM 如何帮助制造业企业

ITSM在现代制造业中的作用 在过去的几年中&#xff0c;制造业已经看到了快速的数字化&#xff0c;以智能制造技术改进生产技术。在工业4.0和工业5.0的推动下&#xff0c;制造商正在摆脱陈旧 以及利用物联网、人工智能、机器学习和大数据等先进技术的互联智能制造系统&#xff…...

leecode

leecode20&#xff0c;有效的括号&#xff0c;栈 class Solution:def isValid(self, s: str) -> bool:def check(ch1,ch2):if ch1 [ and ch2 ]:return Trueelif ch1 ( and ch2 ):return Trueelif ch1 { and ch2 }:return Trueelse:return Falsestack []for i in ran…...

2023-06-09 LeetCode每日一题(修改图中的边权)<未来补全>

2023-06-09每日一题 一、题目编号 2699. 修改图中的边权二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 n 个节点的 无向带权连通 图&#xff0c;节点编号为 0 到 n - 1 &#xff0c;再给你一个整数数组 edges &#xff0c;其中 edges[i] [ai, bi, wi] 表示节点…...

Linux 应用程序信号量使用实战

背景 在项目实施过程中&#xff0c;有个机制需要做两个线程之间的同步。 具体需求如下&#xff1a; 首先&#xff0c;线程1需要把资源读取到缓存 其次&#xff0c;线程2才可以操作这块缓存 上述两个动作顺序交替重复。 思路 使用信号量解决思路&#xff0c;申请两个信号…...

【Java多线程进阶】synchronized工作原理

前言 本期讲解 synchronized 工作的原理以及常见的锁优化机制&#xff0c;相信大家在看完这篇博文后对 synchronized 工作流程有一定的理解。话不多说&#xff0c;让我们快速进入学习吧~ 目录 1. 锁的工作流程 2. 偏向锁 3. 轻量级锁和重量级锁 3.1 轻量级锁 3.2 重量级锁…...

做网站简单吗/全网营销老婆第一人

首先我们看下表设计&#xff1a; 我们现在要实现的功能是 加入购物车逻辑&#xff0c;其实加入购物车这种可以在本地实现的&#xff0c;不用请求服务器&#xff0c;但是考虑商品的时效性&#xff0c;用接口来做体验可能要好一些 我们来分析下购物车的操作体验&#xff1a; 回去…...

盐城建设银行招聘网站/网站seo分析报告

title: AWS之Qwiklab subtitle: 4. Qwiklab实验-Amazon DynamoDB, Amazon Redshift, Elasticsearch Service date: 2018-09-22 12:29:20 --- Introduction to Amazon DynamoDB Amazon DynamoDB简介 知识梳理 1. 定义与作用 首先&#xff0c;Amazon DynamoDB是非关系型数据库&am…...

威海城乡建设局网站首页/seo的中文含义

仅作个人记录 参考了网上的很多资料 文章目录构造、拷贝构造/赋值、析构构造函数和析构函数是否可以抛出异常什么时候生成默认构造函数&#xff08;无参构造函数&#xff09;&#xff1f;什么时候生成默认拷贝构造函数&#xff1f;什么是深拷贝&#xff1f;什么是浅拷贝&#x…...

做网站开发的笔记本配置/平台优化

string &#xff1a;关键字 String &#xff1a;类 可以认为string 是String的别名&#xff0c;在生成的IL中&#xff0c;都是当做String&#xff0c;类似的还有 object 与Object&#xff0c;int 与 Int32 转载于:https://www.cnblogs.com/nzbbody/archive/2012/01/06/2314170.…...

找工程项目/如何优化网页加载速度

vim常用命令总结 &#xff08;转) 在命令状态下对当前行用 &#xff08;连按两次&#xff09;, 或对多行用n&#xff08;n是自然数&#xff09;表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n排版&#xff0c;相当于一般IDE里的code format。使用ggG可对…...

wordpress 如何修改主题宽度/阐述网络营销策略的内容

解析&#xff1a;〈#ffffffff〉 #ffffffff由#加八位数字或字母组成&#xff0c;前两个ff为透明度&#xff08;十六进制&#xff09;&#xff0c;后面六位ffffff为颜色代码&#xff0c;采用RGB配色&#xff08;十六进制&#xff09; 需要修改的机油一般都要查找相关资料&#xf…...