【发布时间】:2013-09-18 12:56:13
【问题描述】:
这听起来可能是一个奇怪的问题,但是如何在不使用编程语言的 API 的情况下对时间进行编程呢?时间是一个如此抽象的概念,不使用预定义的时间函数怎么写程序。
我在想它必须通过处理器计算的计数来计算,但如果每台计算机的速度性能不同,你将如何编写代码来迭代时间。
假设编写程序的语言无关紧要,你会怎么做?
编辑:我还应该说,不使用系统时间,或系统中任何预先生成的时间版本
【问题讨论】:
-
时间是一个抽象的概念,如果你在宇宙和太空旅行的哲学辩论中。在编程中它被计算为秒和微秒。
-
在 C++ 中,有
std::chrono::high_resolution_clock或std::chrono::system_clock或std::chrono::steady_clock等用于测量时间。该实现由标准库提供,因此用户无需担心 TICK_PER_CYCLE 等等。 -
但是你能不使用那些 C++ 方法来做到这一点就是我要问的......不使用操作系统的系统时间。
-
所以你想测量时间,但不想使用任何与内置系统时钟相关的东西? ...你高吗?
-
你确定吗?因为计算机具有任何时间概念的唯一方法是基于硬件时钟,这与手表中的时钟基本相同。如果没有那个硬件时钟和轮询它的系统调用,您的计算机甚至无法告诉您它的时钟速度是多少。它所能告诉你的只是“自上次任意轮询以来,我已经完成了 X 个周期”。