Replace Dart-flute-complex with Dart-flute-todomvc #97
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the WIP commit I've been using to compare the behavior of Dart-flute-todomvc and Dart-flute-complex. I also built a local version of https://wonderous.app/web/ using Wasm-GC to compare as well.
From profiling I observed the following relative rates of allocation in bytes per frame:
This is from a profiler that samples 1% of allocations and reports the stack, bytes, etc for them. So I have good relative numbers, but not precise absolute numbers.
In summary, complex allocates about 39x more bytes than todomvc, which allocates about 3x more bytes than wondrous.app.
In addition, over half of the allocated bytes in complex are coming from stacks with
CupertinoTimePicker
in their name. That seems excessive to me.I would prefer if todomvc replaces complex, as it seems more representative of realistic workloads. This PR includes both for if anyone else wants to do comparisons on them, but I would remove the complex benchmark if we go ahead with this.
Here are dartpad links for complex/todomvc if anyone wants to look at the rendered output of either.
cc' @danleh @camillobruni @kmiller68 @mkustermann