Почему обработка нескольких отдельных целей занимает больше времени, когда Nant направлен на их обработку из одной цели? - PullRequest
0 голосов
/ 17 июля 2009

У меня есть скрипт сборки nant, который определяет компиляцию различных файлов решений Visual Studio.

<target name="compile.solution1" description="Compiles solution 1">
    <msbuild project="${src.dir}\Solution1.sln" verbosity="${build.verbosity}">
        <property name="Configuration" value="${build.config}" /> 
        <property name="OutputPath" value="${build.fullpath}/${prefix.sol1}" />
        <property name="ReferencePath" value="${assembly.dir}" />
    </msbuild>
</target>   

У меня есть несколько решений, указанных в целях compile.solution1, compile.solution2, compile.solution3 ... compile.solution7

У меня есть еще одна цель, которая указывает, что должна быть скомпилирована целая куча решений:

<target name="compile" depends="compile.solution1, compile.solution2,
 compile.solution3, compile.solution4, compile.solution5, compile.solution6,
 compile.solution7" description="Compiles all targets" />

Когда я определяю время, необходимое для выполнения цели "compile" и сравниваю ее с суммой времени, которое она выполняет для выполнения каждой из отдельных целей compile.solutionX, я обнаруживаю, что цель "compile" занимает 30 секунд больше.

Я не понимаю, почему это так? На мой взгляд, цель «compile» должна действовать как цикл for, и разница между ней и выполнением каждого из них должна быть минимальной.

Кто-нибудь знает, происходит ли больше в фоновом режиме в Nant при обработке нескольких решений, определенных в одной цели?

Извините за ужасный заголовок вопроса ... Я просто не знал, как его сформулировать.

1 Ответ

2 голосов
/ 20 июля 2009

Я предполагаю, что оценка зависимости занимает больше времени, когда в атрибуте depends указано несколько целей, и что для каждой нетривиальной цели, добавленной в список, требуется больше дополнительного времени.

...