相关疑难解决方法(0)

在Linux中测量时间 - 时间与时钟对比getrusage vs clock_gettime vs gettimeofday vs timespec_get?

其中计时功能,time,clock getrusage,clock_gettime,gettimeofdaytimespec_get,我想清楚地了解它们是如何实现的,为了知道在什么情况下我必须使用他们什么是他们的返回值.

首先,我们需要对返回wall-clock值的函数进行分类,与返回进程或线程值的函数进行比较.gettimeofday返回wall-clock值,clock_gettime返回wall-clock值进程或线程值,具体取决于Clock传递给它的参数.getrusageclock返回过程值.

然后第二个问题涉及这些功能的实施,因此,它们的准确性.这些功能使用哪种硬件或软件机制.

似乎getrusage只使用内核tick(通常为1ms长),因此不能比ms更准确.这样对吗?然后该getimeofday函数似乎使用最准确的底层硬件.因此,它的准确性通常是近期硬件上的微秒(因为API而不能更多).那么clock,手册页谈的是"近似",它是什么意思?那么clock_gettime,API是纳秒级,是否意味着如果底层硬件允许它,它能够如此准确?单调性怎么样?

还有其他功能吗?

c linux time linux-kernel

137
推荐指数
2
解决办法
6万
查看次数

Python日期时间与时间模块之间的区别

我试图找出datetimetime模块之间的差异,以及每个模块应该用于什么.

我知道这datetime提供了日期和时间.该time模块有什么用?

可以理解的例子和关于时区的差异尤其令人感兴趣.

python time datetime

117
推荐指数
3
解决办法
4万
查看次数

std :: system_clock和std :: steady_clock之间的区别?

std::system_clock和之间有什么区别std::steady_clock?(说明不同结果/行为的示例案例会很棒).

如果我的目标是精确测量的功能(如基准)的执行时间,这将是之间是最好的选择std::system_clock,std::steady_clockstd::high_resolution_clock

c++ timer c++11 c++-chrono

85
推荐指数
5
解决办法
4万
查看次数

如何在Linux中创建高分辨率计时器来衡量程序性能?

我正在尝试将GPU与CPU性能进行比较.对于NVIDIA GPU,我一直在使用这些cudaEvent_t类型来获得非常精确的时序.

对于CPU我一直在使用以下代码:

// Timers
clock_t start, stop;
float elapsedTime = 0;

// Capture the start time

start = clock();

// Do something here
.......

// Capture the stop time
stop = clock();
// Retrieve time elapsed in milliseconds
elapsedTime = (float)(stop - start) / (float)CLOCKS_PER_SEC * 1000.0f;
Run Code Online (Sandbox Code Playgroud)

显然,如果你在几秒钟内计算,那段代码就是好的.此外,结果有时候出来很奇怪.

有谁知道在Linux中创建高分辨率计时器的某种方法?

c linux precision timer high-resolution

33
推荐指数
2
解决办法
7万
查看次数

计算php中的已用时间

大家好我正在尝试计算php中的已用时间.问题不在于php,而在于我的数学技能.例如:Time In:11:35:20(hh:mm:ss),现在说当前时间是:12:00:45(hh:mm:ss)然后我的公式中的时差给出了输出: 1 :-34:25.它应该是:25:25

$d1=getdate();
$hournew=$d1['hours'];
$minnew=$d1['minutes'];
$secnew=$d1['seconds'];

$hourin = $_SESSION['h'];
$secin = $_SESSION['s'];
$minin = $_SESSION['m'];

$h1=$hournew-$hourin;
$s1=$secnew-$secin;
$m1=$minnew-$minin;

if($s1<0) {
    $s1+=60; }
if($s1>=(60-$secin)) {
    $m1--;  }
if($m1<0) {
    $m1++; }
echo $h1 . ":" . $m1 . ":" . $s1;
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

编辑

对不起,我可能不得不补充说,页面每秒刷新一次以显示新的经过时间,所以我必须使用上面的方法.对于没有正确解释,我深表歉意.

php time

26
推荐指数
3
解决办法
7万
查看次数

我的Python应用程序运行多长时间?

基本上,我希望能够输出运行应用程序的已用时间.我想我需要使用某种timeit函数,但我不确定是哪一个.我正在寻找类似以下的东西......

START MY TIMER
code for application
more code
more code
etc
STOP MY TIMER
Run Code Online (Sandbox Code Playgroud)

OUTPUT ELAPSED TIME在计时器的启动和停止之间执行上述代码.思考?

python timer

26
推荐指数
6
解决办法
3万
查看次数

CLOCK_MONOTONIC的起点

据我所知,Linux的起点CLOCK_MONOTONIC是启动时间.在我目前的工作中,我更喜欢使用单调时钟而不是CLOCK_REALTIME(用于计算)但同时我需要在报告中提供人性化的时间戳(年/月/日).它们可能不是很精确,所以我想加入单调计数器和启动时间.

从这里我可以使用api调用在linux系统上获得这个时间?

linux real-time

17
推荐指数
2
解决办法
3万
查看次数

接收具有微秒级精度的RAW套接字数据包

我正在编写一个代码,它从服务器每隔1ms接收一次原始以太网数据包(无TCP/UDP).对于收到的每个数据包,我的应用程序必须回复14个原始数据包.如果服务器在每1ms发送一次数据包之前没有收到14个数据包,则服务器会发出警报并且应用程序必须中断.服务器 - 客户端通信是一对一链接.

服务器是硬件(FPGA),以精确的1ms间隔生成数据包.客户端应用程序在具有10G SolarFlare NIC的Linux(RHEL/Centos 7)计算机上运行.

我的第一个代码版本是这样的

while(1)
{
  while(1)
  {
     numbytes = recvfrom(sockfd, buf, sizeof(buf), 0, NULL, NULL);
     if(numbytes > 0)
     {
        //Some more lines here, to read packet number
        break;
     }
  }
  for (i=0;i<14;i++)
  {
     if (sendto(sockfd,(void *)(sym) , sizeof(sym), 0, NULL, NULL) < 0)
            perror("Send failed\n");
  }
}
Run Code Online (Sandbox Code Playgroud)

我通过clock_gettimerecvfrom呼叫之前采用时间戳(使用)和在呼叫之后采用时间戳来测量接收时间,我打印这些时间戳的时间差并在时间差超过900-1100 us的允许范围时打印它们.

我面临的问题是数据包接收时间是波动的.这样的事情(打印是以微秒为单位)

Decode Time : 1234
Decode Time : 762
Decode Time : 1593
Decode Time : 406
Decode Time : 1703
Decode …
Run Code Online (Sandbox Code Playgroud)

c sockets linux performance networking

11
推荐指数
1
解决办法
887
查看次数

你如何在shell中获得clock_gettime(2)时钟?

我认为没有这样的选择 date

/proc/uptime 是基于引导的,而不是单调的.

最后我发现cat /proc/timer_list | grep now,ktime_get如果我理解正确的话,会产生nsecs的数量,通过它返回单调时间,但这非常麻烦.

update:返回的值必须与返回的值相同clock_gettime

linux time

7
推荐指数
3
解决办法
6684
查看次数

CLOCK_REALTIME有什么用?

我正在阅读CLOCK_REALTIME和之间的区别CLOCK_MONOTONIC

CLOCK_REALTIME和CLOCK_MONOTONIC之间的区别?

CLOCK_REALTIME在时间的不连续性,可以跳向前和向后:是,在这个时钟的错误?如何使时间不一致的时钟可靠?

c gettime clock

6
推荐指数
1
解决办法
2760
查看次数