Closed fatso83 closed 3 years ago
Thanks for the report. I don’t have expect to devote time to investigating this soon but if you can contribute any performance analysis I’d be happy to work with you on improvements.
At least I can try to make a somewhat reproducible test case as a starting point. I'll be back :-)
Awesome, sounds good! Wouldn’t expect anything to be in a hot path such that an order of magnitude regression would actually cause your tests to take 10x. Will be interested to see what your setup is and if this is reproducible on a micro level.
Hi,
Some things i just noticed:
In a large code base with only 1 test (i deleted all the rest of the tests to do a perf test for this issue) - a simple proxyquire
related test is taking over 1 minute for version 2.1
If i downgrade to 1.8
it seems to be much quicker - at around 20s (i beleive most of my 20 second overhead is a babel step)
Whatever the original source of this issue was, it seems to have mostly disappeared from my codebase. The difference in time is now 25 seconds (2.1.3) vs 16 seconds (1.8.0). The 2.1.3 version is twice as fast as 2.1.0 (49 seconds). So the original 10x is down to 3x for 2.1.0 in my codebase, and 2.1.3 makes it a 1.5x.
Looked into this for a sec and the only change I can assume to introduce the perf regession is this one. Could you try to revert that commit and see if the perf improve?
I'd really like to get to the bottom of this and either make that added feature optional or improve its perf.
@thlorenz Thanks for looking into this, but it's been a couple of years, and it's a bit involved to rig that project up right now. Also, the perf diff was down to 50% (judging from my last comment), so it's not that pressing.
@jooj123 might be able to be in a better position.
This bug is basically about test runtime being increased by a tenfold by upgrading from 1.8 to 2.1. The below code snippet shows two subsequent test runs, where the first is using 1.8 and the second is using 2.1.0. Run times are 4 seconds and 49 seconds, respectively.
The entire diff between from the latest commit (reverting back to the old release):