Debugging intrinsic passes

To determine whether you have excessive intrinsic passes,
enable the Track layouts option
in DevTools (disabled by default),
and look at the app’s stack trace
to learn how many layout passes were performed.
Once you enable tracking, intrinsic timeline events
are labeled as ‘$runtimeType intrinsics’.

Avoiding intrinsic passes

You have a couple options for avoiding the intrinsic pass:

Set the cells to a fixed size up front.

Choose a particular cell to be the
“anchor” cell—all cells will be
sized relative to this cell.
Write a custom render object that
positions the child anchor first and then lays
out the other children around it.

To dive even deeper into how layout works,
check out the layout and rendering
section in the Flutter architectural overview.

Build and display frames in 16ms