dotnetcore / SmartCode

SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything!!!
Apache License 2.0
572 stars 163 forks source link

添加并行构建功能,添加依赖任务配置 #66

Closed XiaoHeitu closed 2 years ago

XiaoHeitu commented 2 years ago

可以为每个Build任务配置WaitPre属性。当WaitPre为True 时,会等待前面的所有任务完成后,再执行当前任务。当WaitPre为false时,会开启新线程来执行BUILD,以榨干CPU性能。当没有配置WaitPre时,默认为True。

构建速度在4核心CPU上提升20% 以上。CPU逻辑核心越多,提升越大。

XiaoHeitu commented 2 years ago

完善了任务依赖,移除了单任务并行代码。 依赖任务属性写法 image image

Ahoo-Wang commented 2 years ago

great job!

XiaoHeitu commented 2 years ago

不好意思。为了模版兼容性又添加 了一个新的属性。

为项目添加 AllowParallel 属性。当AllowParallel 为false 或者AllowParallel 不存在时,忽略DependOn配置。所以构建任务按顺序一次执行。这样可以抱枕用户在升级新版本smarcode 后,不修改模版也能正常使用。当 AllowParallel 为 true 时,会自动根据DependOn配置在适当的时机启动并发构建,

image