减少Maven构建线程/过程的优先级



我使用Maven Project的并行构建。

通常我运行mvn install -T 4(我的PC上有4个内核)。

之后,我必须等待将近5-10分钟才能完全构建项目。我在Windows Workstation上无法做任何事情:鼠标/键盘没有响应。CPU负载= 100%。

有什么方法可以减少Maven产生的线程/过程(Javac)的优先级?

我知道我是否将优先级设置为正常 - OS将安排更少的Maven构建时间,而其他程序则更多。

评论建议使用少于4个内核,以便您有自由核心做其他事情代表误解。在正常情况下,您的核心大部分都没有等待,所以保留其中一些只是坐在那里的事情毫无意义,而Maven有工作要做。正如您已经猜到的那样,关键是让Maven流程使用机器所能提供的CPU功率尽可能多,并减少Maven过程的优先级,以便当您想在Maven运行时与计算机进行交互时,您的互动比Maven更高的优先级,因此它们很快完成,此后Maven可以免费使用CPU的全部容量来进行自己的事情。

因此,在Windows下,在命令提示符下,start /belownormal mvn install -T 4会这样做。

更好的是,如果您的CPU足够现代,并且可能是),并且如果您不想担心您有多少核心的问题(您可能不这样做,)然后使用start /belownormal mvn install -T1C指示Maven弄清楚您拥有多少个核心,然后每个核心一个线程。这是优选的,因为它允许进行超线程:您的CPU可能只有4个内核,但是这些内核可能能够用每个核心2个线程进行超线程,因此Maven将产生8个线程。

类型help start有关Windows的内置"启动"命令的更多选项,该选项可控制您通过命令行启动的应用程序的优先级。例如,您可以指定/low而不是/belownormal;它可能会产生更好的响应能力,并且很可能不会导致mvn流程的变慢。

保留核心可能有意义的唯一情况是,如果您想与Maven并行执行其他CPU密集型任务(您可能不),t相信Windows Scheduler在编排此操作方面做得很好。(您应该。)

最新更新