2010-02-21 4 views
5

New Ant 1.8.0 (выпуск 1 февраля) представляет некоторые интересные функции, поэтому я попробовал свои скрипты сборки/развертывания с новым Ant.Ant 1.8.0 низкая производительность

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

ответ

2

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

<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).

+0

Итак, нужно понизить до 1.7.1. иметь достойную работу? –

+0

Любой способ отладки или профиля? –

1

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

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

Смежные вопросы