performance - Ant 1.8.0 性能低下

标签 performance ant 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>

它是备份数据库的目标(备份大小~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/

相关文章:

performance - 为什么python+sqlite3特别慢?

ant - 是否有一种简单的方法可以在 Ant junit 或 java 任务的类路径中使用 OSGi 包?

java - 无法从可执行 jar 中找到 javac 编译器

java - Ant 构建成功甚至语法错误

java - 如何从 Java 程序而不是仅仅从 .bat 启动/停止作为 Windows 服务的 Tomcat?

java - chmod 在 java 中的 exec 中不起作用

python - 在 C++ 中可能等效于 Python `exec`

javascript - 您如何进行页面性能测试?

c# - 为什么在值类型上隐式调用 toString 会导致框指令

javascript - 为什么 Underscore.js chain() 方法不是惰性的?