Jenkins作业窗口批处理执行速度比在cmd.exe中执行慢20倍

时间:2017-05-17 14:42:31

标签: windows batch-file jenkins cmd

我刚刚在Windows 2012 Server \ o /上安装了Jenkins 2.46.2。它作为系统服务运行。

我创建了一个执行Windows批处理(.bat)脚本的作业来构建代码项目。此批处理导致执行2个mingw32-make.exe命令以清理,然后从源代码构建完整的二进制文件。 在机器上手动执行批处理,该机器位于同一文件系统(Jenkins作业使用的工作区,本地磁盘 - 而不是网络磁盘),clean-build需要大约50秒。

但是当詹金斯执行时,这项工作的时间会延长20倍以上!(~19分钟)。它以与在cmd.exe中手动执行的相同行为成功终止。

我使用“-Xmx1024m -XX:MaxPermSize = 512m”选项更改了jenkins.xml文件中jvm的启动参数,正如我在文档中读到的那样,以提高性能。但它确实如此。没有修理任何东西: - (

另外,当我监视CPU /磁盘/ RAM使用时,它们在构建时都保持非常低的水平,所以我推断出机器的粗暴性能不是原因。

我是否在Jenkins作业构建步骤中使用call语句调用批处理不会改变任何内容:作业总是持续19分钟。

有人可以帮我调查为什么这么慢?

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我有类似的问题。我注意到{。}}的.bat文件运行速度很快,没问题。

但是一旦我尝试从批处理脚本启动任何grep.exe,即使没有输入文件也需要24秒(在我的情况下)运行。如果手动启动,它会立即完成。

我使用了MSys 1.0发行版中的grep.exe 2.5.4版。

我的情况下的解决方案是相当意外的 - 我将grep更新为2.24版本,现在,从Jenkins启动,处理超过1 MB的日志文件只需不到一秒钟。