• Trent Apted's avatar
    Make js_binary.py a thousand times faster (literally) by caching dependency subtrees. · 131641f0
    Trent Apted authored
    Targets like ui/file_manager/file_manager/foreground/js:closure_compile
    were causing js_compile.py to spend upwards of one minute of CPU time
    in Python before even invoking the closure compiler.
    
    Caching dependency subtrees takes the python CPU time down to about 50
    milliseconds. That is, a 1000x performance boost.
    
    Note the _set_ of arguments passed to closure is identical. However, the
    order can change slightly without violating dependencies specified. This
    shuffling exposed a couple of errors due to underspecified dependencies.
    (Fix them):
    
    ui/file_manager/file_manager/background/js/test_util_base.js:589:
      ERROR - Property args never defined on request
    
    chrome/browser/resources/settings/site_settings/site_data_entry.js:15:
      ERROR - Variable referenced before declaration: I18nBehavior
    
    TBR=hcarmona@chromium.org
    
    Cq-Include-Trybots: luci.chromium.try:closure_compilation
    Change-Id: I10c27bb76b404bb40828dfd54f99be059adf0fdb
    Reviewed-on: https://chromium-review.googlesource.com/1166775
    Commit-Queue: Trent Apted <tapted@chromium.org>
    Reviewed-by: default avatarNaoki Fukino <fukino@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#581961}
    131641f0
BUILD.gn 6.76 KB