C# 精准计时之 QueryPerformanceCounter QueryPerformanceFrequency用法
C# 用法:
- public static class QueryPerformanceMethd
- {
- [DllImport("kernel32.dll")]
- public extern static short QueryPerformanceCounter(ref long x);
- [DllImport("kernel32.dll")]
- public extern static short QueryPerformanceFrequency(ref long x);
- }
- static void Main(string[] args)
- {
- long stop_Value = 0;
- long start_Value = 0;
- long freq = 0;
- QueryPerformanceMethd.QueryPerformanceFrequency(ref freq);
- QueryPerformanceMethd.QueryPerformanceCounter(ref start_Value);
- //Fun() 需要计时方法
- QueryPerformanceMethd.QueryPerformanceCounter(ref stop_Value);
- double time = (double)(stop_Value - start_Value) / (double)(freq);
- Console.WriteLine(time);//单位S
- Console.ReadLine();
- }
计算所得time即为fun()方法所消耗时间。
C++中QueryPerformanceCounter QueryPerformanceFrequency的用法
- #include "stdafx.h"
- #include "windows.h"
- void main()
- {
- LARGE_INTEGER nFreq;
- LARGE_INTEGER nBeginTime;
- LARGE_INTEGER nEndTime;
- double time;
- QueryPerformanceFrequency(&nFreq);
- QueryPerformanceCounter(&nBeginTime);
- Sleep();
- QueryPerformanceCounter(&nEndTime);
- time = (double)(nEndTime.QuadPart - nBeginTime.QuadPart) / (double)nFreq.QuadPart;
- printf("%f\n", time);
- system("Pause");
- }
计算Sleep(1000)所消耗的精确时间,并非精确的1s
C# 精准计时之 QueryPerformanceCounter QueryPerformanceFrequency用法的更多相关文章
- 获取高精度时间注意事项 (QueryPerformanceCounter , QueryPerformanceFrequency)
花了很长时间才得到的经验,与大家分享. 1. RDTSC - 粒度: 纳秒级 不推荐优势: 几乎是能够获得最细粒度的计数器抛弃理由: A) 定义模糊- 曾经据说是处理器的cycle counter,但 ...
- STM32嵌入式开发学习笔记(四):使用滴答计时器实现精准计时
前面我们讲过,因为在STM32上没有系统时间的接口,因此无法调用sleep函数,在本文中,笔者将利用滴答计时器实现精准延时. 查阅技术手册,滴答计时器依赖于一个SysTick_Type类型寄存器,定义 ...
- spring计时工具类stopwatch用法
public class Test { public static void main(String[] args) { StopWatch stopWatch = new StopWatch(); ...
- 【VS开发】QueryPerformanceFrequency与QueryPerformanceCounter的使用
LARGE_INTEGER tima,timb; QueryPerformanceCounter(&tima); 在 Windows Server 2003 和 WindowsXP 中使用 Q ...
- 【C/C++】计时函数比较
目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但 ...
- Directx11学习笔记【七】 游戏定时器的实现
无论是在动画还是在一些游戏中,定时器总是必不可少的,游戏的帧数动画的播放等都离不开定时器的控制.这里以dx11龙书中提供的定时器为例,具体看看是怎么实现一个简单但精度高使用方便的定时器的. 这个定时器 ...
- c/c++测试函数的运行时间(八种方法)
目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但 ...
- C#中自定义高精度Timer定时器的实例教程
Timer 用于以用户定义的事件间隔触发事件.Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理.它要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用 ...
- C++中几种测试程序运行时间的方法<转>
转的地址:https://www.cnblogs.com/silentteen/p/7532855.html 1.GetTickCount()函数 原理: GetTickCount()是获取系统启动后 ...
随机推荐
- Python图片转字符画
PIL安装很麻烦,推荐下载exe直接安装 PIL官网:http://pythonware.com/products/pil/ 但现在里面下载链接访问不了,我把32位和64位版本上传到博客园以供下载 P ...
- 02-25 类成员的访问权限--internal
C#中还有一种可访问性,就是由关键字internal所确定的“内部”访问性: internal有点像public,外界类也可以直接访问声明为internal的类或类的成员,但这只局限于同一个程序集内部 ...
- Python基础学习六 操作MySQL
python操作数据库,需要先安装模块 1.下载MySQL.Redis模块 2.解压后,在当前目录执行 python setup.py install 3.或是pycharm直接选择安装 import ...
- 配置环境是程序员的第一步 -- Xshell 6 免费版下载安装
Xshell 是一个强大的安全终端模拟软件,通常用来连接云主机,远程控制云主机. 很多人都不知道 Xshell 有专门为家庭和学校用户提供的免费版,只需要填个用户名和邮箱即可. 免费版链接:https ...
- Gym101350 FMonkeying Around
题意 有n只猴子排成一排,一共有m个笑话.开始时,这些猴子都坐在椅子上.下面m行给出的每个笑话包含三个整数x,l,k.代表猴子x讲了笑话l,所以距离x小于等于k的猴子如果他们从没听过这个笑话,他们会掉 ...
- Jmeter调度器配置
Jmeter的线程组设置里有一个调配器设置,用于设置该线程组下脚本执行的开始时间.结束时间.持续时间及启动延迟时间.当需要半夜执行性能测试时会用到这个功能. ps:设置调度器配置,需要将前面的循环次数 ...
- c语言实践 数字特征值
这题的要求是这样的: 这题我没做出来,我大概思路是这样的,根据输入的数字,把这个数字的每一位都分离出来,然后判断奇数还是偶数,再判断序是奇数还是偶数,最后两个奇偶性比较,输出1还是0,这个输出的1和0 ...
- 25.AVG 函数
定义和用法 AVG 函数返回数值列的平均值.NULL 值不包括在计算中. SQL AVG() 语法 SELECT AVG(column_name) FROM table_name SQL AVG() ...
- pymysql模块使用---Python连接MySQL数据库
pymysql模块使用---Python连接MySQL数据库 浏览目录 pymysql介绍 连接数据库 execute( ) 之 sql 注入 增删改查操作 进阶用法 一.pymysql介绍 1.介绍 ...
- HandleErrorAttribute只能处理httpStatusCode为500的异常(服务器异常)
HandleErrorAttribute源代码: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited ...