当负载超过内核时,我还能分析我的代码吗?
Posted
技术标签:
【中文标题】当负载超过内核时,我还能分析我的代码吗?【英文标题】:Can I still profile my code when the load exceeds the cores? 【发布时间】:2018-03-24 16:11:21 【问题描述】:有时我需要分析应用程序,同时需要启动大量不相关的计算。通常我会启动多个作业,以使负载超过核心数,以便稍后我可以在所有作业都完成后回来。
在这种情况下我还能安全地解释配置文件结果吗?
我可以想象在某些情况下,由于我的系统被作业超额订阅,正在分析的作业按比例运行,结果不会受到影响,因为也许作业的轮询频率也较低。
我还可以想象一个分析器以设定的周期(比如每 10 毫秒)检查应用程序,发现代码在特定函数中停留的时间更长,但这仅仅是因为系统被超额订阅。
我只是在猜测这些事情,两者都可能是真的,但我需要澄清一下。
【问题讨论】:
【参考方案1】:您不只是在测量,对吧? 你试图找出任何隐藏的“疾病”,如果你能治愈它们,代码会运行得更快,对吧?
如果是这样,任何此类疾病都会占用其进程时间的某个部分,无论它因其他原因运行多快或多慢。 它可以运行一分钟或一天 - 分数大致相同。
所以你不需要测量时间的东西。 您需要能够精确定位花费最大部分时间的疾病。
This 是一种找到它们的方法。
【讨论】:
以上是关于当负载超过内核时,我还能分析我的代码吗?的主要内容,如果未能解决你的问题,请参考以下文章
如果我的评论表中只有他们的 ID,我还能以某种方式获取对图像发表评论的人的用户名吗
Visual Studio Express中缺少文件,无法打开项目;如果我重新创建项目,我还能以某种方式与Github同步吗?