程序执行时间测量

本文提供了在C/C++, Java, Perl等不同编程环境下实现精确时间测量的方法。通过具体代码示例展示了如何在Windows和Linux系统中获取微秒级的时间精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C/C++:

/**************   Windows  **************/
#include<windows.h>
LARGE_INTEGER time_start;
LARGE_INTEGER time_over;
LARGE_INTEGER f;
QueryPerformanceFrequency( &f );
double  dqFreq = ( double )f.QuadPart;
QueryPerformanceCounter( &time_start );
  // TODO:
QueryPerformanceCounter( &time_over );

double converTime = ( time_over.QuadPart - time_start.QuadPart ) / dqFreq; //unit: us
/**************   Linux  **************/
#include <sys/time.h>  
#include <stdio.h>  
int main() {  
  struct timeval tstart,tend;  
  gettimeofday(&tstart,NULL);  
  // TODO:
  gettimeofday(&tend,NULL);  
  long int use_useconds = 
    1000000*(tend.tv_sec - tstart.tv_sec) + 
    (tend.tv_usec - tstart.tv_usec);  

  printf("%ldus\n",use_useconds);  
  return 0;  
}  

Java:

/************* Java ****************/
start = System.nanoTime();
// TODO:
end = System.nanoTime();
LOG.info("\nRun Time:" + (end - start) + "ns\n");

Perl:

#!/usr/bin/env perl

use strict;
use warnings;
use Time::HiRes qw(gettimeofday tv_interval); 

die("Usage: ./test.pl regexp file.in\n") if (@ARGV == 0);
my $re = shift(@ARGV);
my $start_time = [gettimeofday]; 

while (<>) {
  chomp;
  print "$.:", $_, "\n" if (/$re/);
}

my $interval=tv_interval($start_time,[gettimeofday]); 
print "It takes time : $interval seconds\n"; 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值