performance - 为什么 _mm_pause() 可以显着提高性能?
问题描述
无效_mm_pause(无效)
下一条指令的执行延迟了实现特定的时间量。该指令不会修改架构状态。这种内在提供了特别显着的性能增益。
也就是说:
while (!acquire_spin_lock()) _mm_pause(); // code snippet 1
速度更快,功耗比
while (!acquire_spin_lock()) continue; // code snippet 2
我可以理解为什么代码片段 1的功耗比代码片段 2低。
我无法理解的是:
为什么代码片段 1比代码片段 2快?
解决方案
推荐阅读
- scala - CollectionConverters 总是返回原始源对象?
- google-chrome - 比 chrome 调试器更好地调试网站的大型 JS 文件的方法?
- google-apps-script - 我可以在此脚本中添加什么以仅以相反的顺序将行粘贴为值
- asp.net-core - SignalR 同时双向流式传输
- java - 一旦用户读取它,如何将我的字符串限制在 001 和最大字符串到 999 实施条件之间
- sql - 具有多个 JOINS 的多个子查询 Oracle
- r - 使用keyword_search检测pdf时文件名太长?
- android - OkHttp 4.x 尝试通过呼叫请求访问 url 时出错
- c++ - 为什么在使用之前没有初始化 C++ const 模板化向量?
- javascript - 动画不是离子中的构造函数