新的 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>
它是备份数据库的目标(备份大小~100 Mb)。 Ant 1.7.1 工作大约 30 秒,Ant 1.8.0 - 15 分钟。试了几次,效果稳定。 Ant 1.8 的处理器负载非常低,而旧版本的处理器负载接近 50%。看起来像进程优先级或缓慢 IO 操作的问题。有任何想法吗?
最佳答案
使用时我看到类似的性能下降
<apply executable="...">
...
</apply>
看起来这种性能下降是由 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)。
关于performance - Ant 1.8.0 性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2305301/