A sample application that demonstrate best practices when using isolates
.
- Display the performance benefits of isolates when using them in the right situation.
- Show how to use the
compute
method for straightforward computations. - Demonstrate how to initialize and use an isolate.
- Show the cost of moving data between isolates and provide alternatives.
Compares running a large computation on the main isolate with running the same calculation
on a second isolate. When the main isolate is used, Flutter is unable to render new frames, and
the SmoothAnimationWidget
's animation freezes.
Creates an isolate used to run an infinite loop that sums batches of 100M randomly generated numbers at a time. Users can start, terminate, pause, and resume the isolate, as well as modify how the calculation is performed.
Demonstrates how expensive it is to move large amounts of data between isolates and a better alternative to move data. This page creates an isolate that can add up a list of numbers and gives users three options for how to provide it with input:
- Send values normally using a List
- Send the values using TransferableTypedData
- Generate the values on the second isolate, so no copying is necessary
Users can then compare the performance of each approach using the displayed timestamps.
If you have a general question about any of the techniques you see in the sample, the best places to go are:
If you run into an issue with the sample itself, please file an issue in the main Flutter repo.