【问题标题】:spin cpu for 1 second in Linux在 Linux 中旋转 CPU 1 秒
【发布时间】:2018-02-06 08:24:57
【问题描述】:

我知道如果我在 Linux 中调用 sleep(1),处理器会执行上下文切换并在 1 秒后将进程带回内存。

是否有任何 API 可以在不离开 CPU 的情况下旋转 1 秒。

【问题讨论】:

  • 为什么会有?如果您真的需要,您可以自己制作一个,但有比使用 CPU 更便宜的方法来加热房间。
  • 英特尔在过去的 30 年里,通过包含多个 CPU 和越来越长的管道,让您很难不这样做。请记住,您的计算机中可能有 4 个或更多“CPU”,您是否想全部“旋转”它们(以及您/真正/“旋转”是什么意思)
  • 旋转一个 cpu 1 秒
  • 如果 Liinux、英特尔或其他任何人开始包含 API 调用,这可能对 0.0000001% 在通用操作系统上编写一些狡猾的实时应用程序的开发人员有用,那么不称职和/或不关心的糟糕开发人员会直接使用它,编写在垃圾循环上不必要地浪费硅的应用程序,并且正如@Art 上面所说的那样,到处增加空调费用:(
  • 另外,“将进程带回内存”不,不能保证从内存中删除被阻塞线程的代码/数据。当然,执行会被暂停,但如果其他地方不需要内存,则无需调出内存。

标签: c linux operating-system


【解决方案1】:

没有这样的标准 API。没有一个称职的程序员会在普通的计算机系统中提供这样的 API,因为这很浪费。

如果您正在尝试实现其他目标,例如确保某些数据保留在内存中,可能还有其他方法可以实现,例如mlock

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多