• 多核时代,还在使用任务管理器来看程序的性能吗?


    是否为了一个程序只占用了13%的CPU利用率而沾沾自喜呢?

    clip_image001

    别忘了现在是多核时代,四核,超线程的i7. 单个线程最多只能占到12.5%的CPU利用率。

    忘记这个简单的CPU利用率吧,多核时代,你需要具体知道到每个线程的利用率。

    这篇博客,来源一个刚刚遇到的问题。

    背景是我们正在针对Windows Media Player开发一些东西,具体是什么不重要。

    我们遇到了两个不同策略需要做抉择,到底是哪一个好呢?

    如果使用任务管理器来看,处理同样的任务,两个策略的CPU使用率都差不多在35%上下,没有太大的区别。(实验的平台是个双核超线程CPU)

    但是如果使用更加高级的工具: Windows Performance Analysis Tools, 就能得到更多的信息。

    策略A的结果:

    clip_image002

    在这里可以看到,wmplayer.exe的CPU使用率总共是33.62%, 但是其中有个线程3536的使用率占到了24.34%. 对于双核超线程而言,单线程最大占到25%. 所以线程3536完全成为了系统的瓶颈,即使还有更多的CPU资源,Windows Media Player都不可能跑的更快了。

    策略B的结果:

    clip_image003

    可以看到,wmplayer.exe的CPU使用率为38.66, 还要略高于策略A.

    但是,最高的单线程CPU使用率是13.46%,整个CPU的负载被平衡到了不同的线程中。整个系统中没有明显的瓶颈出现了。

    孰优孰劣呢?

    毫无疑问,策略B更好,Windows Media Player有能力处理规模更大的问题。

    至于Windows Performance Analysis Tool怎么用,我就不多说了。外事不决问Google.

    最后,惯例。

    话说贼不走空,对于那些不喜欢这篇博客,又误入的同学,至少下面的福利你会喜欢。

  • 相关阅读:
    ArcGIS进行视域分析及地形图制作
    ArcGIS进行容积率计算
    ArcGIS对进行数据拓扑修改
    如何打开软键盘
    China一词的由来
    名侦探柯南剧集数据统计分析
    常用QQ快捷键
    福利|GISer需知网站
    中国程序员最容易读错的单词
    截取数组
  • 原文地址:https://www.cnblogs.com/aoaoblogs/p/2154797.html
Copyright © 2020-2023  润新知