首页
学习
活动
专区
圈层
工具
发布

GetTickCount() 函数的作用和用法

GetTickCount() 函数是 Windows API 中的一个重要函数,用于获取自系统启动以来经过的毫秒数。这个函数通常用于计算时间间隔、性能分析和定时等场景。...函数原型DWORD GetTickCount(void);php25 Bytes© 菜鸟-创作你的创作返回值返回类型:DWORD(无符号 32 位整数)返回值:返回自系统启动以来经过的毫秒数。...使用 Sleep(2000) 函数让程序暂停 2000 毫秒(即 2 秒),模拟某些操作。再次调用 GetTickCount() 获取结束时间。计算起始时间和结束时间的差值,即为操作执行的时间间隔。...使用 GetTickCount64() 代替如果你需要避免 GetTickCount() 溢出的问题,可以使用 GetTickCount64(),这是一个类似的函数,返回一个 64 位的值,计时范围大大增加...总结GetTickCount() 是一个用来获取系统启动以来的毫秒计时函数,适合用于粗略的时间间隔计算。它返回一个 32 位的无符号整数,如果系统运行超过大约 49.7 天,返回值会溢出。

36800
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenCV copyTo、clone、“=”与拷贝构造函数的区别

    opencv中为矩阵复制提供了copyTo函数、clone函数、重载运算符和拷贝构造函数,用法非常简单: Mat srcimage = imread("1.jpg"); Mat firstimage...(); thirdimage = srcimage; t3 = (double)getTickCount() - t3; double t4 = (double)getTickCount...、clone函数占用时间差不多,但是“= ”运算符与拷贝构造函数用的时间却非常少,这是为什么呢?...而拷贝构造函数则 只拷贝信息头和矩阵指针 ,而不拷贝矩阵。但某些时候你仍会想拷贝矩阵本身(不只是信息头和矩阵指针),这时可以使用函数 clone() 或者 copyTo() 。...从上面的话我们可以看到,copyTo函数、clone函数拷贝的不仅仅是信息头,还有矩阵本身,而“= ”运算符与拷贝构造函数仅仅拷贝了信息头,他们指向的其实是一个矩阵,也就是在上的程序中,我们改变srcimage

    2.2K30

    技巧 | OpenCV程序执行时间计算

    01 引言 大家用OpenCV做开发,经常需要调试算法,打印出算法的执行时间,OpenCV中没有直接获取时间戳的函数,但是有两个根据CPU时钟可以精准计算算法每个步骤执行时间的函数,通过它们可以计算一行或者多行代码的执行时间...计算执行时间 cv.getTickCount, 返回CPU执行的时间周期数, cv.getTickFrequency 每秒CPU时间周期总数 计算一段算法处理执行的时间秒数,代码结构如下: e1 = cv.getTickCount...计算秒/毫秒/FPS 在算法执行阶段,有三个经常使用的速度性能计量指标分别是秒、毫秒、FPS(每秒多少帧),根据上面的cv.getTickCount与cv.getTickFrequency两个函数,这三个指标的计算代码如下...: e1 = cv.getTickCount() # your code execution e2 = cv.getTickCount() ## 计算秒 time = (e2 - e1)/ cv.getTickFrequency...,完成一次深度学习模型推理的时间,可以从模型的getPerfProfile函数中获取,转换为毫秒数,相关的计算代码如下: # Put efficiency information. t, _ = net.getPerfProfile

    2.1K20

    OpenCV中C++11 lambda方式像素遍历

    C++11 lambda语法 C++11中引入了lambda表达式,它支持定义一个内联(inline)的函数,作为一个本地的对象或者一个参数。...参数解释: […]里面包含的是可以引用的本地变量 (…)里面包含的是函数的变量参数 returnType是返回类型 一个简单的例子如下: auto sum_xy = [](int x, int y) -...std::cout <<" sum_xy = "<< sum_xy(11, 12) << std::endl; 注意:如果直接使用,没有把本地变量放到变量列表中去,就会出现一个常见的语法错误: 封闭函数局部变量不能在...语法如下: void cv::Mat::forEach(const Functor & operation) 其中operation是一个C++11 lambda表达式,同时也是一个匿名的C++函数。...test_pixs.jpg"); typedef cv::Point3_ Pixel; // forEach方式的像素遍历 double start = (double)cv::getTickCount

    27410

    C# 六种方式实现精确计时

    根据综合网上的一些文章,精确计时主要有以下几种方式 1 调用WIN API中的GetTickCount [DllImport("kernel32")]static extern uint GetTickCount...经反编译猜测它可能也是调用的GetTickCount,但是它的返回值是int,而GetTickCount与timeGetTime方法的原型中返回值是DWORD,对应C#中的uint,难道.NET对System.Environment.TickCount...缺点:与GetTickCount一样,受返回值的最大位数限制。...如果安装的硬件不支持高精度计时器,函数将返回false需要配合另一个API函数QueryPerformanceFrequency。...QueryPerformanceFrequency(ref long PerformanceFrequency); QueryPerformanceFrequency返回硬件支持的高精度计数器的频率,如果安装的硬件不支持高精度计时器,函数将返回

    1.8K30

    opencv(4.5.3)-python(九)--性能度量和优化

    你会看到这些函数:cv.getTickCount, cv.getTickFrequency,等等。 除了OpenCV之外,Python还提供了一个模块time,这对测量执行时间很有帮助。...用OpenCV测量性能 cv.getTickCount函数返回一个参考事件(比如机器被打开的那一刻)到这个函数被调用的那一刻之后的时钟周期的数量。...因此,如果你在函数执行之前和之后调用它,你可以得到执行一个函数所使用的时钟周期数。 cv.getTickFrequency函数返回时钟周期的频率,或每秒的时钟周期数。...e1 = cv.getTickCount() # your code execution e2 = cv.getTickCount() time = (e2 - e1)/ cv.getTickFrequency...不使用cv.getTickCount,而使用time.time()函数。然后取这两个时间的差值。 OpenCV中的默认优化 OpenCV的许多函数都使用SSE2,AVX等进行了优化。

    78620

    CV学习笔记(二):OpenCV基本操作

    我这里定义了一个函数来输出图片的信息: 这里可以看到: 图片的大小是589*646的彩色3通道图片,编码方式是uint8....这时候我们使用OpenCV自带的bitwise_not函数: 因为底层是使用的C++语言进行封装,所以执行快得多,来对比下: 同样的一张图只需要17ms,舒服多了。...五:时间消耗的计算 上图中的测试时间的计算用到了两个函数: GetTickcount函数:它返回从操作系统启动到当前所经历的计时周期数 GetTickFrequency函数:返回每秒的计时周期数 使用的方法...: t1 = cv.getTickCount() #你需要的测试的函数或代码 t2 = cv.getTickCount() time = (t2-t1)/cv.getTickFrequency() print...("D:/1.png") cv.namedWindow("input image",cv.WINDOW_AUTOSIZE) cv.imshow("input image",src) t1 = cv.getTickCount

    71000

    关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。

    在.net中,图像处理方面的内容主要是借助于GDI+的平板化API函数实现的。为了获取GDI+能支持的那几种格式的缩略图,可以调用Bitmap或者Image类的GetThumbnailImage函数。...下面我们主要通过实验说说这个函数的实质和其可应用的场合以及不应该应用的场合。   ...), Bitmap Result = Result + "加载图像用时: " & GetTickCount - Elapse & " 毫秒。"...附带说一个问题:不知道大家注意到没有,上述代码中 GdipLoadImageFromFile 函数执行的时间都很短,而基本相同的函数在C#的Bitmap.FromFile函数中对于上述测试图像都要200...如果是用C#做,我可能会像类似于VB中这样,直接调用GDI+的API函数。

    1.8K30

    CV学习笔记(二):OpenCV基本操作

    二:读取视频 读取视频分为从摄像头中读入和从硬盘中读入,如果是摄像头就在videocapture函数中填写数值,0是默认的第一个摄像头,1.是第二个,以此类推,如果没有外置摄像头,就直接“”填写路径就行...我这里定义了一个函数来输出图片的信息: ? 这里可以看到: ? 图片的大小是589*646的彩色3通道图片,编码方式是uint8....这时候我们使用OpenCV自带的bitwise_not函数: ? 因为底层是使用的C++语言进行封装,所以执行快得多,来对比下: ? 同样的一张图只需要17ms,舒服多了。...五:时间消耗的计算 上图中的测试时间的计算用到了两个函数: GetTickcount函数:它返回从操作系统启动到当前所经历的计时周期数 GetTickFrequency函数:返回每秒的计时周期数 使用的方法...: t1 = cv.getTickCount() #你需要的测试的函数或代码 t2 = cv.getTickCount() time = (t2-t1)/cv.getTickFrequency() print

    52220

    【C++11】 让多线程开发变得简单--原子变量

    { for (int i = 0; i < MAX_COUNT; i++) { ++n; } } int main(void) { ULONGLONG ullBegin = GetTickCount64...g_mutex.lock(); ++sum; g_mutex.unlock(); } } int main(void) { ULONGLONG ullBegin = GetTickCount64...thread t2(increase_mutex); t1.join(); t2.join(); cout << n << endl; ULONGLONG ullDelay = GetTickCount64...call_once/once_flag的使用 在实际编程时,如果有变量或者函数需要被初始化或者执行一次,那么就可以使用call_once来保障了,在C++11中std::call_once用来保证在多线程运行环境下函数或者变量只被执行或者初始化一次...\n"; for (auto& th : threads) th.join(); return 0; } 在上面的代码中set_winner 只被运行了一次,id为获取到这个函数执行权限的线程序号

    1.1K30

    半圆型动态仪表盘风格图表

    Do If GetTickCount - t > 5 Then Exit Do DoEvents Loop Next...End Sub 然后就想分享给大家,不过鉴于代码太长大家可能接受不了,所以自己稍微改造了一下,使用了随机函数+VBA自动刷新的组合功能,效果勉强看得过去!...Do If GetTickCount - t > 5 Then Exit Do DoEvents Loop Next...数据结构图表都与以上介绍过的相同,维一不同的是控制单元格的方法: 这个图表B15单元格是有RAND()函数控制(rand函数可以随机生成0~1之间的小数) 这里主要介绍一下怎么制作自动更新的图表数据标签和自动刷新的...另一方面,rand函数需要使用F9键刷新,才能更新数据,但是小魔方比较懒,不想每次都去按F9,所以直接写了一个自动刷新的VBA语句。

    2.7K60
    领券