在Windows上使用GNU make,负载平均值到底代表什么?
例如:
make -j --load-average=2.52.5是什么意思?
发布于 2009-09-30 22:37:09
编辑,遵循vines的评论
在Unix术语中,可运行进程是等待CPU时间或随时运行的进程。从技术上讲,它是一个处于TASK_RUNNING状态的进程。
然而..。
--load-average参数的目的是提供有关Make何时可以启动新线程的指导;使Make能够更优雅地与其他应用程序(以及其内部)共享CPU资源。
在Linux中,这个参数的语义与它的名字非常接近:当内核报告的平均负载(我假设这是“一分钟”负载平均,虽然可能是5分钟)小于参数值时,允许新的Make线程。
在Windows中,Make根据CPU负载的加权平均值(由GetSystemTimes函数报告)和内存负载(例如,从GlobalMemoryStatusEx函数)。
发布于 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源代码:
# 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的更新版本,但我怀疑它是否有变化。
https://stackoverflow.com/questions/1500976
复制相似问题