有没有一种方法可以获取当前作业编号以在makefile规则中使用?
让我给你一点背景。我正在使用一个在多个文件上运行的工具。自然地,我使用并行作业来加快速度。真正的问题在于,这个工具会产生多个线程,我想让它们在单个核心上运行——因为那样速度更快。我做了一些测试,发现那样运行更快。
我需要作业编号来设置进程亲和性到CPU核心。
有没有一种方法可以获取当前作业编号以在makefile规则中使用?
让我给你一点背景。我正在使用一个在多个文件上运行的工具。自然地,我使用并行作业来加快速度。真正的问题在于,这个工具会产生多个线程,我想让它们在单个核心上运行——因为那样速度更快。我做了一些测试,发现那样运行更快。
我需要作业编号来设置进程亲和性到CPU核心。
COUNT :=
%.foo :
$(eval COUNT += x)
@echo "$@: Number of rules run is $(words $(COUNT))"
all: a.foo b.foo c.foo d.foo
$(eval ...)
来修改每次调用时的变量,从而让您“计数”。 - MadScientist--output-sync = target
会有所帮助,但速度太慢,而且错误不在日志的末尾。
另一种情况是在作业运行时监视作业的执行,并在运行时切换不同作业的日志。 - Victor Sergienko