-
Notifications
You must be signed in to change notification settings - Fork 28.6k
Fix performance problems of flutter test --experimental-faster-testing
#146603
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
Comments
cc @a-siva |
//cc @jonahwilliams would you be the right person to help out Derek here ? |
@derekxu16 are these package:test send/receive ports? if so have you talked to any of the package:test maintainers yet? I can look at it a bit but I'm not very familiar with the work. |
There was some discussion with the |
They do in the typical case. After some more thinking, though, I got worried about removing the |
The culprit of slow performance seems to be the fact that all dart code for all tests in one combined dill file for all concurrently-running dart isolates spawned in flutter_tester runs on a single one and the same platform thread. So effectively we end up running all the tests on a single thread, not taking advantage of possible paralellization. |
The performance of
flutter test --experimental-faster-testing
is currently not ideal when running a large number of test files because the Lightweight Engines spawned when using this strategy get blocked from shutting down by openReceivePort
s. This was my latest attempt to ensure that all channels, and thus allReceivePort
s, get closed on the spawned isolates: d560cf4, but this commit did not fix the problem. So, we either have to determine what other changes need to be made in order to ensure that allReceivePort
s get closed on spawned isolates, or alternatively we need to add a new Engine API that can forcibly kill spawned Lightweight Engines.The text was updated successfully, but these errors were encountered: