Maven在OSX上构建速度为3倍

时间:2012-03-28 17:43:19

标签: performance maven-2 osx-lion

我最近在工作中得到了一个新的Macbook Pro,并注意到在Maven2中构建我们的代码库需要大约15分钟,而我团队中的其他人使用稍微较旧的Macbook(但类似/相同的规格)在大约5分钟内构建。在四处询问之后,我在团队中找到了另外一个人,他的构建需要15分钟以上。我正在谈论一个新的代码检查,我们所有人都使用相同版本的Maven(2.2.1)和Java版本:1.6.0_29,从项目的根目录运行'mvn clean install'。我们两个慢速构建都在Lion(10.7.3)上,而5分钟构建的人在Lion或Snow Leopard上。我的机器有8GB内存和2.3 GHz i7,所以它似乎不应该是一个问题。 AFAIK,这款机器配备了Lion(而不是从Snow Leopard升级),所以我认为它不是从Snow Leopard升级而来的,似乎有些人有问题。我们慢速构建的都有5400转的驱动器,而其他大多数都有7200转的驱动器,但是,其中一个拥有5分钟构建的其他人拥有与我们完全相同的5400转驱动器...所以这样的规则出了那个理论。

我运行了内存测试(检出正常),在磁盘工具中运行磁盘验证和权限修复(修复了一些权限问题,但没有更改构建时间),禁用交换,确保filevault关闭,构建从不同的目录,都无济于事。一些有趣的观点让我怀疑操作系统问题:

  1. 我在这台机器上安装了一个Ubuntu虚拟机,在那里进行'mvn clean install'甚至比OSX中的本机速度快得多(10分钟对15分钟)!仅供参考,我们团队中的本地Ubuntu人员也建立了大约5分钟。几个月前,当我在我的Windows机器上的VM中运行Ubuntu时,构建平均为15-20分钟。
  2. 构建项目中最慢的组件通常需要3-4分钟。关于这个组件的有趣之处在于其中的代码非常少。实际上,它只是一个测试用例和135 MB的资源文件。在3-4分钟的时间里,我计算了大约100多秒的“复制63资源”。
  3. 在OSX安全模式下运行,构建上述最慢的组件只需要42秒,其中大约7秒花在复制63个资源上。
  4. 我不确定此时还有什么可以尝试的,但我觉得我已经非常接近了。如果没有这么显着的差异,我不会那么担心,但在我的工作流程中,15分钟对5分钟是巨大的。将我的工作电脑交给Apple Genius家伙,我感到很不舒服,我们的IT人员不是Mac人。重新安装操作系统似乎是我在网上看到的答案,但这似乎有点过分和侵扰性。 (我知道这可能是一个OSX问题,而不是Maven问题,但Maven是我的基准。我没有注意到任何其他的缓慢,但很难说没有使用其他人的计算机)

    有没有人遇到过这样的事情?关于尝试什么的任何想法?感谢

1 个答案:

答案 0 :(得分:2)

在您的计算机和快速计算机上运行mvn -X ...命令,并从日志文件中比较哪些任务/插件占用的时间最多。这应该给你一个起点。两个最慢的部分是文件系统扫描和网络访问,用于检查工件/依赖项/插件更新。

可以通过调整磁盘访问(例如,缓存或切换到SSD)来改进前者。

后者可以通过添加Maven存储库管理器来改进,例如Nexus或Artifactory,它们可以缓存和优化对所有远程Maven存储库的访问。