标签: clock

在C#中获得系统时钟更改刻度

当秒,分钟,小时......在系统时钟中发生变化时,它们是一种执行delegateevent在C#中的方式,而不使用定时器,如果属性已更改则检查每毫秒并以最大延迟执行事件一毫秒

因此,我想避免在某个时间进行投票和发射事件.

c# events delegates clock

5
推荐指数
2
解决办法
7668
查看次数

如何重置 Ada.Real_Time.Clock?

在上电后立即读取 Ada.Real_Time.Clock 时,它显示的值不接近零,有时甚至是负值。据我所知 Ada.Real_Time.Clock 假设在上电时重置。如何重置 Ada.Real_Time.Clock?

谢谢。

real-time ada clock reset

5
推荐指数
1
解决办法
570
查看次数

结果不好:时间(NULL)和时钟()

#import <stdio.h>
#import <time.h>

int main (void) {

    printf("Clock ticks per second: %d\n", CLOCKS_PER_SEC);
    double check = clock();
    int timex = time(NULL);

    for (int x = 0; x <= 500000; x++) {

        printf(".");

    }
    puts("\n");

    printf("Total Time by Clock: %7.7f\n", (clock() - check) / CLOCKS_PER_SEC );
    printf("Total Time by Time: %d\n", time(NULL) - timex);

    getchar();
}
Run Code Online (Sandbox Code Playgroud)

当我执行上面的代码时,我得到的结果如下:

时钟总时间:0.0108240

总时间:12

我想让clock()代表一个尽可能接近时间的数字.

上面给出的总时间是在macbook上完成的,但是,我的笔记本电脑(windows)上的代码效果非常好.

CLOCKS_PER_SECOND宏在PC上返回1000,在MAC上返回1,000,000.

c macos time clock

5
推荐指数
1
解决办法
800
查看次数

配置文件C执行

所以,只是为了好玩,出于好奇,我想看看在做奇偶校验,模数或按位比较时执行得更快.

所以,我掀起了以下内容,但我不确定它的表现是否正确,因为差异太小了.我在网上看到,按位应该比模数检查快一个数量级.

它是否有可能被优化掉?我刚刚开始修补程序集,否则我会尝试解析一下可执行文件.

编辑3:这是一个工作测试,非常感谢@phonetagger:

#include <stdio.h>
#include <time.h>
#include <stdint.h>

// to reset the global
static const int SEED = 0x2A;

// 5B iterations, each
static const int64_t LOOPS = 5000000000;

int64_t globalVar;

// gotta call something
int64_t doSomething( int64_t input )
{
  return 1 + input;
}

int main(int argc, char *argv[]) 
{
  globalVar = SEED;

  // mod  
  clock_t startMod = clock();

  for( int64_t i=0; i<LOOPS; ++i )
  {    
    if( ( i % globalVar ) == 0 ) …
Run Code Online (Sandbox Code Playgroud)

c profiler clock execution-time

5
推荐指数
1
解决办法
150
查看次数

如何与UTC计时器进行循环同步并在每分钟执行一次?

我希望在datetime.utcnow().second零时每分钟执行一次循环.到目前为止,我有这个

while True:
    while datetime.utcnow().second != 0: pass
    do_something()
Run Code Online (Sandbox Code Playgroud)

但问题是我浪费了cpu进程.我会使用time.sleep(60),但我不知道它将如何与UTC时钟同步,因为time.sleep(60)可能会随着时间的推移偏离官方UTC时间.

python sync timer clock

5
推荐指数
1
解决办法
4276
查看次数

Linux时钟架构

在Linux中,如何实现时钟架构.有一个文件include/linux/clkdev.h

struct clk_lookup {
    struct list_head    node;
    const char      *dev_id;
    const char      *con_id;
    struct clk      *clk;
};
Run Code Online (Sandbox Code Playgroud)

各种领域有哪些,它广泛用于时钟架构中arch/arm/Board***/...

arm clock linux-kernel

5
推荐指数
1
解决办法
2922
查看次数

总是阻止@posedge 时钟

让我们以下面的示例代码为例:

always @(posedge clock)
   begin
   if (reset == 1)
     begin
        something <= 0
     end
   end
Run Code Online (Sandbox Code Playgroud)

现在假设重置从 0 更改为 1,同时时钟有一个posedge。那个时候会<= 0吗?或者下次有时钟的posedge时会发生这种情况(假设重置保持在1)?

verilog clock

5
推荐指数
1
解决办法
2万
查看次数

矩阵时钟解决了什么但矢量时钟不能解决?

我理解在标量逻辑时钟方面对向量时钟的需求未能提供足够的信息来判断密钥值存储更新中是否存在更新冲突.

但是我不确定矢量时钟仍然没有解决什么问题,然后通过更庞大的矩阵时钟解决了?

clock distributed-computing vector-clock

5
推荐指数
1
解决办法
2198
查看次数

C:Windows和其他操作系统中clock()的不同实现?

我必须为大学编写一个非常简单的控制台程序,它必须测量输入所需的时间.

因此我clock()在前面和fgets()通话后使用.在我的Windows计算机上运行时,它工作得很好.然而,当我在我的朋友Mac-Book和Linux-PC上运行时,它给出了非常小的结果(只有几微秒的时间).

我在所有3 OS上尝试了以下代码:

#include <stdio.h>
#include <time.h>
#include <unistd.h>

void main()
{
    clock_t t;

    printf("Sleeping for a bit\n");

    t = clock();

    // Alternatively some fgets(...)
    usleep(999999);

    t = clock() - t;

    printf("Processor time spent: %lf", ((double)t) / CLOCKS_PER_SEC);
}
Run Code Online (Sandbox Code Playgroud)

在Windows上,输出显示1秒(或使用时键入的时间fgets),另外两个操作系统显示的时间不超过0秒.

现在我的问题是为什么clock()在这些操作系统的实现上存在这样的差异.对于Windows来说,当线程处于休眠/等待状态时,时钟似乎仍在滴答作响,但对于Linux和Mac则不然?

编辑:感谢你们到目前为止的答案,所以这只是微软的错误实现.

有人可以回答我的上一个问题:

还有一种方法可以测量我想要使用C标准库在所有3个系统上测量的内容,因为它clock()似乎只在Windows上以这种方式工作吗?

c linux windows macos clock

5
推荐指数
2
解决办法
1078
查看次数

为什么clock()返回1.84467e + 13?

我正在尝试用C++编写的代码.我有一个内部和外部循环,我想分开时间,但同时.由于某种原因,当我这样做时,其中一个实例返回1.84467e + 13并且总是这个确切的数字.

为什么会这样?

这是一个在我的机器上复制效果的最小工作示例:

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

int main()
{
    long int i, j;
    clock_t start, finish, tick, tock;
    double a = 0.0;
    double adding_time, runtime;

    start = clock();
    for(i=0; i<10; i++)
    {
        a=0.0;
        tick =clock();
        for(j=0; j<10000000; j++)
        {
            a+=1;
        }
        tock= clock();
        adding_time = (double)(tick - tock)/CLOCKS_PER_SEC;
        cout << "Computation time:" << adding_time << endl;

    }
    finish = clock();
    runtime = (double)(finish - start)/CLOCKS_PER_SEC;
    cout << "Total computation time:" << runtime …
Run Code Online (Sandbox Code Playgroud)

c++ timing clock

5
推荐指数
1
解决办法
279
查看次数