2016-10-18 3 views
0

У меня есть задача копирования, которая копирует все файлы (кроме некоторых файлов в некоторых каталогах) в другой каталог; то файлы в этих каталогах удаляются (с помощью grunt-strip-code).
Задача копирования выполняется медленно, поэтому я попытался ускорить, скопировав только что измененные файлы, используя grunt-newer. Но новее, похоже, так же медленно, как и сама копия.

Это производительность измеряется хрюкать время без новой задачи:Grunt newer is very slow

Execution Time (2016-10-18 13:10:14 UTC+2) 
loading tasks  849ms ██ 1% 
copy:copyApp 1m 33.7s ████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 99% 
Total 1m 34.5s 

Это производительность измеренной с ворчанием-новым, и без каких-либо изменений (т.е. нет необходимости выполнять копии):

$ grunt newer:copy:copyApp 
Reading build.properties 

Running "newer:copy:copyApp" (newer) task 
No newer files to process. 

Done, without errors. 

Execution Time (2016-10-18 13:33:26 UTC+2) 
loading tasks   2.8s ███████ 4% 
newer:copy:copyApp 1m 6.2s ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 96% 
Total 1m 9s 

Это часть Gruntfile настраиваемой задачи копирования:

grunt.config('copy', { 
    copyApp: { 
     src: ["**", "!**/dist/**", "!**/build.properties", "!**/Grunt*", "!**/node_modules/**", "!**/comp/**", "!**/package*"], 
     dest: compPathNtvApp 
    } 
}); 

И это, как я использую grunt-new:

grunt.registerTask('test', 'newer:copy:copyApp'); 

Ожидалось, что эффективное повышение производительности с использованием грубой новой. Был ли я неправ, или я ошибаюсь?

ответ

0

я обнаружил, что основная проблема связана с этой строки:

src: ["**", "!**/dist/**", "!**/build.properties", "!**/Grunt*", "!**/node_modules/**", "!**/comp/**", "!**/package*"], 

Если я использовать фильтр вместо minimatch/Глоб, производительность значительно улучшает

$ grunt newer:copy:copyApp 
Reading build.properties 

Running "newer:copy:copyApp" (newer) task 

Running "copy:copyApp" (copy) task 
Created 1 directory 

Done, without errors. 


Execution Time (2016-10-18 16:45:37 UTC+2) 
loading tasks  650ms ███████ 4% 
newer:copy:copyApp 16.2s ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 96% 
Total 16.9s