首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行make使用的平均负载代表什么?

并行make使用的平均负载代表什么?
EN

Stack Overflow用户
提问于 2009-09-30 22:29:02
回答 2查看 1.3K关注 0票数 2

在Windows上使用GNU make,负载平均值到底代表什么?

例如:

代码语言:javascript
复制
make -j --load-average=2.5

2.5是什么意思?

EN

回答 2

Stack Overflow用户

发布于 2009-09-30 22:37:09

编辑,遵循vines的评论

在Unix术语中,可运行进程是等待CPU时间或随时运行的进程。从技术上讲,它是一个处于TASK_RUNNING状态的进程。

然而..。

--load-average参数的目的是提供有关Make何时可以启动新线程的指导;使Make能够更优雅地与其他应用程序(以及其内部)共享CPU资源。

在Linux中,这个参数的语义与它的名字非常接近:当内核报告的平均负载(我假设这是“一分钟”负载平均,虽然可能是5分钟)小于参数值时,允许新的Make线程。

在Windows中,Make根据CPU负载的加权平均值(由GetSystemTimes函数报告)和内存负载(例如,从GlobalMemoryStatusEx函数)。

票数 1
EN

Stack Overflow用户

发布于 2015-01-09 02:45:40

在Windows上--显然没什么。这是一个UNIX术语:http://en.wikipedia.org/wiki/Load_%28computing%29

当我运行uptime命令时,Cygwin的副本报告平均负载为零。我不认为在Windows上有一个快速的方法来计算它;它在过去的Cygwin邮件列表中被问到了。

换句话说:它没有被实现,所以它总是零。

下面是getloadavg的实现,直接来自GNU Make 3.81源代码:

代码语言:javascript
复制
# if !defined (LDAV_DONE) && (defined (__MSDOS__) || defined (WINDOWS32))
#  define LDAV_DONE

  /* A faithful emulation is going to have to be saved for a rainy day.  */
  for ( ; elem < nelem; elem++)
    {
      loadavg[elem] = 0.0;
    }
# endif  /* __MSDOS__ || WINDOWS32 */

我还没有检查GNU make的更新版本,但我怀疑它是否有变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1500976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档