Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cache detected React version #2673

Merged
merged 1 commit into from Jun 15, 2020
Merged

Cache detected React version #2673

merged 1 commit into from Jun 15, 2020

Commits on Jun 15, 2020

  1. Cache detected React version

    I've been timing and profiling ESLint runs at Airbnb and noticed that
    react/no-unknown-property is particularly slow for us when using the
    "detect" setting for React version.
    
    When running ESLint using TIMING=1 on a directory that contains about
    500 files to be linted in it, react/no-unknown-property shows up as
    taking about 1700ms.
    
    Looking at the callstacks in the profiler, it seems that when this rule
    calls getStandardName for every JSXAttribute here, it will actually do
    all of the work to detect the React version every time to determine the
    correct set of DOM property names. Since there may be a lot of
    JSXAttribute nodes in a codebase, this adds up to quite a bit of work.
    
    By specifying the react version in our ESLint config, the
    no-unkown-property rule drops out of the top 10 slowest rules entirely,
    with the 10th slowest clocking in at 180ms.
    
    I think it would be a good idea to cache the React version when using
    detect instead of looking it up every time.
    lencioni committed Jun 15, 2020
    Copy the full SHA
    b8e91a5 View commit details
    Browse the repository at this point in the history