问题标签 [usleep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
677 浏览

c - 更多订单的睡眠循环中的时钟()返回值 0

我想看看在一个线程中执行一些代码需要多少时间。但是clock()返回0。

这是代码:

但我一直得到 0 次点击。我认为 usleep 并没有准确地等待 200 毫秒,所以我需要计算使用 ffmpeg 同步编码音频的函数花费了多少时间。

0 投票
3 回答
80003 浏览

c - C.usleep 中的时间延迟

我正在开发游戏服务器,它是用 C 语言编写的。我需要开发一个具有一定频率(每秒 50 次)的循环来执行算法。问题是我无法将程序暂停一个确切的时间间隔 - 20000 微秒。函数usleep(20000)运行大约 30000 微秒。结果总是比预期的多 10000 微秒。

这是我的简单代码示例:

它运行的结果是:

我也尝试使用函数select(),但结果与使用sleep().

请向我解释一下我的代码有什么问题。

ps:

0 投票
7 回答
21219 浏览

c++ - Linux 上 C++ 中 usleep(0) 的效果

usleep的文档指出调用usleep(0)无效。但是,在我的系统(RHEL 5.2)上运行下面的 C++ 代码小片段,我发现它实际上看起来与usleep(1). 这是意料之中的吗?如果是这样,为什么文档与我在现实生活中看到的内容之间存在差异?

展品 A

代码:

输出:

展品 B

代码:

输出:

0 投票
5 回答
1467 浏览

c - 睡眠时间少于 1ms

我正在尝试创建 cpu 负载生成器工具。我的输入将是一个介于 0-100 之间的数字。我正在使用时间函数来计算负载并检查负载。如果负载超过所需值,我会尝试使进程休眠。我面临的问题是我获得了所需的负载,但仅限于 500 毫秒或更长的时间段。不少于那。我正在检查一个名为“top”的工具上的负载。当我尝试减少顶部的时间段时。我观察负载波动。有什么方法可以让进程休眠 1ms 或更短。

0 投票
2 回答
2542 浏览

c++ - nanosleep 不能使用多个线程

我对 nanosleep() 函数有疑问。

在测试项目中,它按预期工作。
在实际项目中,它没有:就像睡眠时间为零一样。

就我所见,测试和实际项目最大的区别在于线程数:一个在测试中,两个在实际中。

这可能是原因吗?

如果我将 nanosleep 调用放在由一个线程运行的代码中,该线程不应该暂停吗?

谢谢你。

0 投票
2 回答
1425 浏览

c - usleep() 计算经过时间的行为很奇怪

我正在使用下面的代码计算每次连续调用处理程序函数所经过的时间(以毫秒为单位)。当我使用 usleep(1000) 时,即每次通话之间的 1 毫秒时间差为 10 毫秒,而当我使用 usleep(1000000) 时,即 1 秒,每次通话之间的时间间隔令人惊讶地下降到小于 1 毫秒。以下是代码片段:

0 投票
2 回答
1004 浏览

php - 截断数字的最后 X 位而不除以 10eX

我正在制作一个阻塞算法,我刚刚意识到,如果它应该保持精确,那么为这种算法添加超时并不是那么容易。
添加超时意味着,如果不是更早,阻塞算法应该在 X 毫秒之后中止。现在我似乎有两个选择:

  1. 迭代时间(有错误,但很快)
    • 检查阻塞情况
    • 迭代time_elapsed1 (这意味着使用usleep 1e-6 秒)
    • time_elapsed与比较timeout。(这里是我要讲的问题
    • usleep(1)
  2. 每次迭代获取系统时间(缓慢但精确)
    • 知道该怎么做,请不要发布任何关于此的答案。

timeout_time_elapsed

这就是困扰我的地方。在休眠 10e-6 秒timeout时将以毫秒 (10e-3)为单位。usleep所以 mytime_elapsed将比 . 精确 1000 倍timeout。我想截断time_elapsed(运算等于不除的最后三位floor($time_elapsed/1000)。除法算法太慢。

概括

我想让我的变量小 1000 倍而不将其除以 1000。我只想摆脱数据。在二进制中我会使用位移运算符,但不知道如何在十进制系统上应用它。

代码示例:

有时,当 SO 上的人无法回答理论问题时,他们真的很渴望代码。这里是:

我想用更快的东西替换这段代码。请注意,虽然问题本身充满了超时,但问题标题只是关于 truncating that data。其他用户可能会发现该解决方案对计时以外的其他目的有用。

0 投票
2 回答
17497 浏览

c - 用 nanosleep 代替 usleep

我想在我的代码中用 nanosleep 替换过时的 usleep 函数:

问题:这个替换是否得到与 usleep 相同的精确时间(并且它是一个正确的替换)?

0 投票
1 回答
870 浏览

php - php sleep/usleep 会给服务器带来压力吗?

我正在尝试长轮询。我使用 jquery ajax 调用服务器上的 php 脚本。

这是我的代码:

我正在尝试为我们的办公室制作一个简单的聊天系统。只有大约 100 个连接的用户在同一时间运行此脚本一整天。

上面的示例代码会不会消耗大量的系统资源?

我只是无法将其放到网上并对其进行测试,因为我已经收到了来自托管的最后警告。

0 投票
5 回答
826 浏览

c++ - 在 C++ 中放弃处理器时间 (Windows)

我环顾四周,似乎找不到我要找的东西,但首先让我强调一下,我不是在寻找高精度的睡眠功能。

这是我要解决的问题的背景:

我制作了一个内存映射库,它的操作很像命名管道。您可以将字节放入其中,从中获取字节,并查询有多少字节可用于读/写,所有这些都是好东西。

如果它们传递 8KB 或更大的字节块,使用它进行通信的快速(主要)进程平均速度为 4GB/s。当您接近 512B 块大小时,性能下降到大约 300MB/s。

问题:

偶尔,在负载较重的服务器上,会出现非常大的延迟时间(超过 5 秒)。我对这个问题的原因的运行理论是,当发生大量传输(大于映射内存的大小)时,写入数据的进程将紧密轮询以等待已实现的循环缓冲区中有更多可用空间在内存映射的顶部。没有睡眠调用,因此轮询过程可能会无缘无故地占用 CPU!问题是,即使是最小的睡眠调用(1ms)也绝对会破坏性能。memmap 大小为 16KB,因此如果它每 16KB 休眠 1ms,性能将下降到 16MB/s 的最佳情况。

解决方案:

我想要一个我可以调用的函数,它将放弃 CPU,但对操作系统重新调度它的时间没有限制(在本例中为 Windows 7)。

有没有人有任何好的选择?/有没有人知道这样的功能是否存在?

谢谢。