Ant 1.8.0 низкая производительность - PullRequest
5 голосов
/ 21 февраля 2010

Новый Ant 1.8.0 (выпуск 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 Мб). Муравей 1.7.1 работает около 30 с, Муравей 1.8.0 - 15 мин. Я пробовал несколько раз, эффект стабильный. Загрузка процессора очень мала для Ant 1.8 и около 50% для старого. Похоже, проблема с приоритетом процесса или медленных операций ввода-вывода. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 27 мая 2010

Я вижу аналогичное снижение производительности при использовании

<apply executable="...">
   ...
</apply> 

Похоже, что это снижение производительности было вызвано 9-летним исправлением ошибки в ANT 1.8.0, найденным здесь: 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).

1 голос
/ 22 февраля 2010

Я бы предложил подать отчет об ошибке напрямую в команду Ant. Время их ответа обычно очень хорошее.

http://ant.apache.org/bugs.html

...