使用 while() 和 sleep() 让程序进入睡眠模式的区别

2024-02-20

我创建了一个共享对象并从两个不同的程序访问它并测量时间。

DATA 数组是两个进程之间的共享对象。


您没有准确描述如何运行不同版本(不同的进程?),但假设它们是连续的 - 您可能会看到 sleep() 的影响

当然,这取决于具体的实现和硬件,但很可能会让您的 CPU 进入某种省电/睡眠状态(这就是它的设计目的)。如果是这种情况,那么核心缓存将必须作为该过程的一部分进行刷新,并且您将在冷缓存中醒来。另一方面,whie 循环的目的是在磨削 CPU 并保持其活动状态(以及缓存)的同时执行繁忙的等待循环,除非您碰巧在此过程中进行了上下文切换。

确切的细节再次取决于实现,在 x86 上,您可以使用内联汇编来调用 Monitor+mwait 指令,这些指令允许您指定想要实现的确切 C 状态深度。深度越深,关闭的缓存就越多(主要与 L3 相关)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 while() 和 sleep() 让程序进入睡眠模式的区别 的相关文章

随机推荐

  • 将负颜色数转换为 HEX 或 RGB

    我从未见过像这样的颜色代码 1 16777216 256等等 所以我当前的问题是这样的 我们有一个第三方软件 您可以在其中对值进行颜色编码 如下图所示 现在我正在创建一个显示这些值的 PHP 报告 但我还想使用与软件中定义的颜色相同的颜色来
  • 如何理解卡方列联表

    我有几个分类特征 Gender Married Dependents Education Self Employed Property Area from scipy stats import chi2 contingency chi2 p
  • android DatePickerDialog只显示一个按钮

    我知道有很多问题DatePickerDialog正如这篇文章所解释的Jelly Bean DatePickerDialog 有办法取消吗 https stackoverflow com questions 11444238 jelly be
  • socket.io - 数百个请求而不是一个连接

    我创建了一个简单的应用程序来从socket io开始 但是当我运行它时 Chrome 在其他浏览器中测试 结果相同 占用了我所有的CPU并发出许多请求 我是套接字新手 但我确信这不是它应该如何工作的 在浏览器中运行的代码非常简单 它应该连接
  • MySQL 中的累计计数(*)

    想象一个 SQL 表votes 有两列vote and time vote是一个字符串 time是一个时间戳 我想从表中检索 累积计数 所以 表格看起来像这样 vote time stuart 1443000000 stuart 14430
  • 如何在 PHP 中运行 bind_param() 语句?

    我正在尝试使以下代码正常工作 但无法访问execute line mysqli this gt ConnectLowPrivileges echo Connected br stmt mysqli gt prepare SELECT nam
  • 调试引用 IIS 中运行的 Sqlite 的 ASP.NET Core 应用程序时访问被拒绝

    ASP NET Core 2 2 项目参考Microsoft EntityFrameworkCore Sqlite 2 2 3 as a PackageReference 由于用户进程提升 在 IIS Express 中调试应用程序效果很好
  • 如何运行由“lein jar”命令制作的jar?

    这是后续这个问题 https stackoverflow com questions 3390268 how to setup the classpath when running the jar made from lein uberja
  • 如何获取和设置WPF文本框的当前光标位置

    我想从 WPF TextBox 获取当前光标位置 如果一个TextBox包含文本abhishek并且光标在之后闪烁abhi然后我想要那个索引 以便稍后清除后TextBox以编程方式分配一些其他或相同的文本以编程方式我想让光标在 4 个字符后
  • 金字塔:多个资源工厂——如何

    我有一个简单的根资源工厂 class Root acl Allow Authenticated edit 现在对于一些 特殊 路线 我需要创建另一个资源工厂 config add route special special test fac
  • 如何在Gitlab-ci中登录docker账户

    我已经订阅了 Pro 计划docker https www docker com pricing帐户到提高速率限制 https www docker com increase rate limit在我自己托管的 Gitlab CI 工作中
  • 类“PreferredSizeWidget”不能用作 mixin,因为它既不是 mixin 类也不是 mixin

    升级到 Flutter 3 10 和 Dart 3 后 我收到此错误 类 PreferredSizeWidget 不能用作 mixin 因为它是 既不是 mixin 类 也不是 mixin 当前版本的代码 class MyAppBar ex
  • 自动生成层次结构值

    我有一个带列的树表ID ParentID and Hierarchy并想要生成Hierarchy列值取决于ParentID 为此 我使用触发器 是否存在更好的方法来生成层次结构列值 ALTER TRIGGER TR MyTable Befo
  • 使用 Paramiko 保留时间戳

    使用 Paramiko 将 SFTP 文件从一台服务器传输到另一台服务器时 是否有一种方法可以保留时间戳 类似于 pLinux 中的争论 原始文件 jim vm3634 ls la rwxrwx 1 jim admin 2214 Mar 3
  • 如何列出检查点中的某些变量?

    我正在使用自动编码器 我的检查点包含网络的完整状态 即编码器 解码器 优化器等 我想玩弄编码 因此 在我的评估模式中 我只需要网络的解码器部分 如何从现有检查点中仅读取一些特定变量 以便我可以在另一个模型中重用它们的值 There s li
  • 计算 sqlalchemy 模型中的相关项数

    我正在尝试计算各自类别中的项目数量 并最终得到一个可以在 jinja 模板中迭代的集合 我的最终输出是这样的 类别1 5 类别2 10 类别3 0 零物品案例很重要 我的模型是 class Category Base tablename c
  • 是否可以从 VS Code 内的 Android 或 iOS 模拟器查看 SQLite 数据库?

    我正在 Flutter 中编写一个跨平台移动应用程序 但遇到了 SQLite 数据库的错误 为了调试它 我真的希望能够查看数据库中保存的内容 由于这是移动开发 因此数据库文件保存在模拟器内 以及我的 Android 手机内 是否可以从模拟器
  • 如何在 ExcelInterop 中查找第一个和最后一个单元格以及 C# 中的图形范围

    尝试在 Excel 中绘制一个简单的 csv 文件 1 2 3 4 5 6 7 8 9 如何以编程方式确定绘图范围为 A1 C3 我努力了 var lastCell worksheet Cells get End XlDirection x
  • if (condition) try {...} 在 C++ 中合法吗?

    例如 if true try works as expected with both true and false but is it legal catch 换句话说 放置 try 块是否合法紧接在 if 条件之后 a 的语法try块 这
  • 使用 while() 和 sleep() 让程序进入睡眠模式的区别

    我创建了一个共享对象并从两个不同的程序访问它并测量时间 DATA 数组是两个进程之间的共享对象 您没有准确描述如何运行不同版本 不同的进程 但假设它们是连续的 您可能会看到 sleep 的影响 当然 这取决于具体的实现和硬件 但很可能会让您