bur*_*all 5 ant performance exec
新的Ant 1.8.0(2月1日发布)引入了一些很酷的功能,所以我尝试使用新的Ant构建/部署脚本.
令我惊讶的是,某些目标的执行时间变慢了10-30倍!下面是使用Exec任务的简单示例,虽然我也遇到了其他任务类型的性能问题.
<target name="create_backup_impl" if="db.make_backup" >
<echo message="Backup is starting.." />
<exec executable="${db.dump_executable}"
output="${db.backup_file}"
failonerror="true">
<arg value="-h${db.host}" />
<arg value="-u${db.userid}" />
<arg value="-p${db.password}" />
<arg value="${db.backup_options}" />
<arg value="${db.name}" />
</exec>
<echo message="Backup completed!" />
</target>
Run Code Online (Sandbox Code Playgroud)
它是备份数据库的目标(备份大小~100 Mb).Ant 1.7.1工作约30秒,Ant 1.8.0 - 15分钟.我试了几次,效果很稳定.Ant 1.8的处理器负载非常低,旧的处理器负载接近50%.看起来像进程优先级或缓慢IO操作的问题.有任何想法吗?
使用时我发现类似的性能下降
<apply executable="...">
...
</apply>
Run Code Online (Sandbox Code Playgroud)
看起来这种性能下降是由 ANT 1.8.0 中一个 9 年前的错误修复引起的:https://issues.apache.org/bugzilla/show_bug.cgi ?id=5003(请参阅评论 #29)。
ANT 1.8.1 的性能略有提高,但仍然比 ANT 1.7.1 差:https://issues.apache.org/bugzilla/show_bug.cgi ?id=48734(请参阅评论 #2)。