问题标签 [parallel-builds]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
makefile - 使用“make -jN”进行 cmake 和并行构建
我正在尝试为我的源代码树设置一个基于 CMake 的并行构建,但是当我发出
我得到:
作为警告。有没有人知道是否有可能以某种方式修复它?
visual-studio-2008 - 使用带有 maxcpucount 选项的 MSBUILD 的问题
我在 4 核机器上使用 MsBuild。我提供以下命令行来构建属于大型 VC++ 解决方案的 4 个项目(拥有超过 4 个项目,全部没有相互依赖关系)。我正在使用 Visual Studio 2008。
为了加快构建时间,我试图利用这些maxcpucount
选项,但它似乎不起作用。我期望每个核心都会构建我在命令行提供的 4 个项目中的每一个。不幸的是,我测量了建造时间,无论有没有maxcpucount
选择,我都有相同的确切结果。
你知道我在这里做错了什么吗?
正确的说法是“一次构建 4 个 MyVCppSolution.sln 解决方案项目”还是我应该手动运行 4 个进程,每个进程构建一个解决方案的单个项目,最多 4 个?
java - 编译 Java 时使用多个内核/处理器
我使用一个具有八个内核的桌面来构建一个使用 Ant 的 Java 应用程序(通过 javac 目标)。有没有办法通过使用多个线程或进程来加快编译速度?
我知道我可以并行运行多个 Ant 任务,但我认为这不能应用于单个编译目标,不是吗?
visual-studio - 如何在 Visual Studio 2010 中进行并行构建?
如何让 VS 2010 一次运行多个 C++ 编译进程?我的意思是并行构建对象模块;我对一次构建多个项目不感兴趣(我知道工具 > 选项 > 构建和运行 < 并行项目构建的最大数量,但这不是我想要的)。
基本上,我正在寻找 Visual Studio 的“make -jN”等价物。
java - 构建 Java 代码的快速、易于维护和可并行化的方式?
我正在开发一个构建系统,该系统长期以来一直存在不良做法和其他不良做法,并且我正在重新编写构建。涉及的语言是 C/C++、Fortran、Ada 和 Java,目前我坚持使用 GNU 风格的 makefile——尽管我们正在考虑其他替代方案,例如 SCons。
话虽如此,我正在寻找一些具体的建议——而不是“使用不同的构建系统”等形式的建议。
无论谁编写了我现在正在查看的特定 makefile,他都计划按顺序构建如下所示的 java 代码:
如果您执行串行构建,则可以正常工作。但是,一旦依赖项混入其中,问题就会变得更加严重。
- C/C++ 编译器具有用于生成依赖项的内置选项……Java 是否存在类似的工具?
- 是否有必要使用第三方工具(如 Jikes)来生成依赖项?
- 通常来说,如果一个团队使用 makefiles 来构建任何与 java 相关的东西,是否更典型的是调用 java 编译器一次列出
.java
一个命令行中的所有文件 -vs- 每个.class
文件的一个目标?- 如果这更常见,这是为了简单起见还是有更深层次的原因?
- 注意:我知道对于顺序构建,这将是更快的选择,但我想要一个答案来对并行构建进行经验测试
unit-testing - “序列化” Bamboo 构建?
我们使用 Bamboo v3.1.1 作为我们的持续集成构建服务器,它运行良好——大部分时间。
我们遇到的一个问题是我们正在进行大量面向数据库的测试,例如,构建在共享数据库实例上进行了一些单元和集成测试。
当我们碰巧同时运行同一个构建计划的多个 Bamboo 构建时,这会导致问题 - 它们相互绊脚并导致死锁,通常,所有涉及的构建都会因此而失败。
因此,虽然并行构建很棒——理论上——我们真的希望能够定义一个构建计划来“序列化”构建,例如从不并行执行多个构建。
有谁知道我们该怎么做?是否有一个设置告诉 Bamboo“不要并行化这个构建计划 - 一次只做一个构建,以串行方式”
更新:
我的构建过程目前有两个阶段:
- 核心构建(构建 VS 解决方案,将测试数据库更新为最新脚本)
- 测试(NUnit 2.4)
“核心构建”可以轻松地并行运行多次 - 没有问题。但是,“测试”阶段不能多次运行,因为其中一些测试访问唯一共享的“单元测试”数据库;如果超过 1 个“测试”阶段进程正在运行,它们最终会互相死锁。
那么我如何告诉 Bamboo 可以并行化“核心构建”阶段,但对于“测试”,无论运行多少构建,始终一次只运行一个实例?
maven-3 - 跳过 Maven 3 并行构建项目
有人知道为什么我的一些项目在成功的 Maven 构建结束时被标记为 SKIPPED 吗?
请注意,“跳过链”总是从我的网络项目开始,其中包括以下功能:
- jspc-maven-插件
- 带有覆盖的战争插件
- maven 依赖插件
maven-3 - Maven 3 Parallel Gmaven 零星故障
我的 Maven 3.0.4 并行构建因以下错误间歇性失败:
[错误] 无法执行目标 org.codehaus.gmaven:gmaven-plugin:1.2:compile (default) on project opcenter: No providers found matching selection: 1.7 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException:未能在项目 opcenter 上执行目标 org.codehaus.gmaven:gmaven-plugin:1.2:compile(默认):没有找到匹配选择的提供者:org.apache.maven.lifecycle.internal.MojoExecutor.execute 的 1.7(MojoExecutor.java: 217)在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven .lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:167) 在 org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:163) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在 java.util.concurrent。 FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java .util.concurrent.FutureTask.run(FutureTask.java:138) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :908) at java.lang.Thread.run(Thread.java:662) 原因:org.apache.maven.plugin.MojoExecutionException:没有找到匹配选择的提供者:org.codehaus.gmaven.plugin 中的 1.7。MojoSupport.execute(MojoSupport.java:85) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 13 更多原因:org.codehaus.gmaven.feature.ProviderException:未找到匹配选择的提供者:org.codehaus.gmaven.runtime.loader.DefaultProviderManager.select(DefaultProviderManager.java:109) 的 org.codehaus 的 1.7 .gmaven.plugin.ProviderMojoSupport.provider(ProviderMojoSupport.java:120) 在 org.codehaus.gmaven.plugin.ComponentMojoSupport.feature(ComponentMojoSupport.java:49) 在 org.codehaus.gmaven.plugin.ComponentMojoSupport.feature(ComponentMojoSupport.java :42) 在 org.codehaus.gmaven.plugin.ComponentMojoSupport.doExecute(ComponentMojoSupport.java:53) 在 org.codehaus.gmaven.plugin.MojoSupport.execute(MojoSupport.java:69) ... 还有 15 个
我的父 pom.xml 定义 gmaven 插件如下:
请注意,当我运行“mvn groovy:providers”命令时,我看到运行时已安装,当我使用单线程构建时,构建成功
linux - 并行制作:将 -j8 设置为默认选项
-j
我可以使用参数设置构建过程的线程数。例如,我有 4 个核心 +4 个虚拟。我写make -j8
的时候:速度提高了4倍。
是否可以将该值设置为默认值?(例如,在 Linux Gentoo 中,在配置文件中,可以设置此默认值)。
ps 我有 Arch Linux
cmake - 如何在 CMake 中配置可移植并行构建?
无论使用哪种构建工具,是否有可能以某种方式进行并行构建?
在 Unix 下,我们可以添加make -jN
其中 N 是线程数,在 Windows 下,我添加到CXX_FLAG "/MP"
其中,然后在 Visual Studio 中用于并行构建......(?)我怎样才能使我的版本CMAKE_MAKE_PROGRAM
不总是在我扩展时运行 CMake?
什么是通用解决方案?
我想出了这个: