Grunt更新很慢

时间:2016-10-18 11:41:17

标签: javascript performance gruntjs grunt-contrib-copy

我有一个复制任务,它复制另一个目录中的所有文件(某些目录中的某些文件除外);然后剥离这些目录上的文件(使用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更新的有效性能提升。我错了,还是我犯了一些错误?

1 个答案:

答案 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