我有一个复制任务,它复制另一个目录中的所有文件(某些目录中的某些文件除外);然后剥离这些目录上的文件(使用grunt-strip-code)
复制任务很慢,所以我试图通过使用grunt-newer复制刚刚修改过的文件来加快速度。但是新版本似乎和版本本身一样慢
这是使用grunt-time测量的性能而没有更新的任务:
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-new测量的性能,没有变化(即无需执行复制):
$ 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');
我期望使用grunt更新的有效性能提升。我错了,还是我犯了一些错误?
答案 0 :(得分:0)
我发现主要问题是由于这一行:
src: ["**", "!**/dist/**", "!**/build.properties", "!**/Grunt*", "!**/node_modules/**", "!**/comp/**", "!**/package*"],
如果我使用filter而不是minimatch / glob,性能会大大提高
$ 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