cpu 抖动

性能分析新机器

当我在新机器上工作时,我想了解它的局限性。 在这篇文章中,我将研究机器的抖动以及忙于等待本周末构建的新PC的影响。 该机器的规格很有趣,但不是发布目的。 永远不要少于它们:

  • i7-3970X六核运行于4.5 GHz(打开HT)
  • 32 GB的PC-1600内存
  • OCZ RevoDrive 3,PCI SSD(实际写入带宽为600 MB / s)
  • Ubuntu 13.04

注意: OCZ RevoDrive在Linux上不受官方支持,但比其模型便宜得多。

测试抖动

我的微抖动采样器查看正在运行的线程的中断。 它与jHiccup相似,但是它没有测量线程唤醒的延迟,而是测量了线程一旦开始运行如何获得的延迟。 令人惊讶的是,线程的运行方式会影响唤醒后将看到的延迟类型。

该图表有点密集。 它示出了一个CPU小时内发生的平均(每次测试运行多于两个时钟小时)有原始数据是可用的范围内的时间的中断的数量该处

有趣的区别在于操作系统如何处理与隔离的CPU和/或繁忙的等待线程的绑定。

忙碌中

在繁忙等待的情况下,绑定到隔离的内核确实有助于减少较高的等待时间间隔。

这些测试同时运行。 唯一的区别是“绑定”线程绑定到“ isolcpus” CPU,该内核的其他CPU也被隔离。 即整个核心都是孤立的。

相当忙-50%

在这种情况下,线程在采样1毫秒和Hibernate1毫秒之间交替

未绑定的50%繁忙线程的延迟要低得多,只有2微秒,但更长的延迟要多得多。

有点忙– 10%

在此测试中,采样器运行0.111毫秒,睡眠1毫秒。 即使在这种情况下,绑定到隔离的CPU也会有所不同。

绑定但不隔离– 10%

在这种情况下,未隔离绑定线程。 它被绑定到一个CPU上,在该CPU上内核不是免费的,并且也不是孤立的。 与该测试中的未结合相比,单独结合似乎没有什么区别。

比较绑定线程和隔离线程

我以前见过的东西,但我发现有点奇怪,就是如果您放弃CPU,则线程唤醒后性能会很差。 以前,我已将缓存设置为未预热,但是代码对内存的访问很少,并且代码非常短,因此仍然可能但不太可能。 以每小时一百万的速度在20微秒处达到峰值可能是由于每次唤醒时都会发生延迟。 这大约是90,000个时钟周期,对于高速缓存未命中来说似乎很多。

比较未绑定的线程

在此图表中,它表​​明即使您不受束缚,对CPU的贪婪也确实有帮助。 繁忙的线程较少被中断。 很难说50%的忙比10%的忙更好。 可能是这样,但是需要更长的测试时间(我说这是在误差范围之内)

结论

在不隔离CPU的情况下使用线程相似性在此系统上似乎无济于事。 我怀疑其他Linux版本甚至Windows都是如此。 在亲和力和隔离性有帮助的地方,繁忙的等待仍然有意义,因为调度程序似乎会减少中断线程的次数(如果您这样做的话)。

参考:来自Vantage Java博客的JCG合作伙伴 Peter Lawrey的微抖动,繁忙等待和绑定CPU 。

翻译自: https://www.javacodegeeks.com/2013/07/micro-jitter-busy-waiting-and-binding-cpus.html

cpu 抖动

cpu 抖动_微抖动,繁忙的等待和绑定CPU相关推荐

  1. 微抖动,繁忙的等待和绑定CPU

    性能分析新机器 当我在新机器上工作时,我想了解它的局限性. 在这篇文章中,我将研究机器的抖动以及忙于等待本周末构建的新PC的影响. 机器的规格很有趣,但不是发布目的. 永远不要少: i7-3970X六 ...

  2. q87主板支持cpu型号_怎么选内存,看主板和CPU的支持,取一致性约束

    选配内存,非常重要,因为数据临时保存在内存,对电脑升级,最具性价比的方案,就是升级内存. 任务描述:重点解读兼容与接口的搭配技术,解读选配内存的过程. 任务思维导图: 任务实施过程: 概念:内存用于存 ...

  3. 连接mysql解决网络抖动_网络抖动时候,获取数据库连接等待15分钟后报错。

    我们的服务器和数据库分布在不同的机房,现象就是每隔一小时左右,获取数据库连接就会等待15分钟后报异常,然后继续获取连接,执行SQL正常.服务器用的是druid1.0.17版本. 有没有可以设置连接超时 ...

  4. 出现画面抖动_连续抖动20小时!虎门大桥桥面如波浪翻滚,专家:个人感觉没问题...

    前两天(5月5日),虎门大桥桥面出现如波浪翻滚的起伏,引发广泛的关注: 次日,广东交通集团通报,虎门大桥震动是涡振现象,悬索桥结构安全. 专家初步判断此次涡振和桥上设置水马有关.但直到6日早上11时, ...

  5. simulink抖动_关于抖动时钟的模型

    在 IC 设计(如 ADC 电路等)中,有时候要考虑时钟抖动(clock jitter)的影响,通过在设计初期加入带有抖动的时钟模型可以较快的判定其影响. 关于 clock jitter 具体的仿真模 ...

  6. simulink抖动_时钟抖动的建模与仿真_上传

    时钟抖动的建模与仿真 --随机过程大作业报告 1 引言 采样是数字通信系统中最重要也是最关键的一步.比如,由模拟信源变为数 字信源需要 AD 采样, 接收端将接收信号数字化也需要 AD 采样, 而采样 ...

  7. java cpu模拟器_这是在JAVA中实现6502 CPU模拟器的“好”方法吗?

    想要确保我不必回去并重做大块代码......我将每个操作码都作为实现Runnable的枚举中的值.有没有更有效的方法,我应该这样做,还是我在写轨道上准确地运行测试套件?这是在JAVA中实现6502 C ...

  8. mysql写入 cpu飙升_分析MySQL中索引引引发的CPU负载飙升的问题

    收到一个mysql服务器负载告警,上去一看,load average都飙到280多了,用top一看,CPU跑到了336%,不过IO和内存的负载并不高,根据经验,应该又是一起索引引起的惨案了. 看下pr ...

  9. android 获取cpu型号_当贝投影带你认识投影仪CPU芯片有哪些?网友:真详细

    说到投影仪的处理器,很多消费者都会感到头疼,因为不同于手机处理器高通和MTK.以及电脑的英特尔和AMD有那么高的知名度,投影仪里的处理器对一般消费者来说还是相对比较陌生的.今天的当贝投影小编就来带大家 ...

最新文章

  1. linux 常见服务端口
  2. linux fastQC 操作命令,[Bio-Info]fq文件解析统计工具:FastQC在linux下初应用
  3. Hibernate的批量处理-批量更新
  4. Robo 可视化mongoDb的操作
  5. TOGAF9.2企业架构师考试小记
  6. 没有提取码怎么获取百度网盘资源?
  7. 用Java简单实现验证码功能以及校验
  8. java堆栈常用排查指令
  9. JAVA对接圆通API
  10. 六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
  11. 【msvcr100.dll文件下载】msvcr100.dll丢失的解决方法
  12. 如何申请注册Tom企业邮箱,教程详解来袭
  13. 学java用不用学ps_【No935】零基础学习从入门到精通Ps课程
  14. 博客自定义html模块代码,如何添加博客自定义代码HTML?
  15. C. Equalize
  16. 使用正则匹配iframe标签
  17. 深度学习图像标注软件LabelMe使用方法
  18. python代码加密运行在win10_如何在Win10上正确安装Python,VSCode和flake8
  19. java.lang.NoClassDefFoundError: javax/transaction/Synchronization 解决方法。
  20. OPENGL ES 2.0 知识串讲 (10) ——OPENGL ES 详解IV(纹理优化)

热门文章

  1. P3768 简单的数学题 [狄利克雷卷积,杜教筛,莫比乌斯反演]
  2. 关于Java类加载双亲委派机制的思考(附面试题)
  3. Java 正则表达式匹配模式[贪婪型、勉强型、占有型]
  4. URL的getFile()和getPath()方法的区别
  5. Spring Boot Server容器配置
  6. 漫画算法:如何判断链表有环
  7. subList?? subString???
  8. 新闻发布项目——接口类(commentDao)
  9. linux微信公众号报警,zabbix报警媒介,微信报警,邮件报警
  10. 下载的c语言程序代码怎么运行,CFree怎么运行程序 编译运行C语言程序代码的方法...