[fxfs] Box Item in async code

Item<ObjectKey, ObjectValue> is 224 bytes. Every time an Item is passed
to an async fn or held across an await, the future needs to capture the
Item and the future grows by 224 bytes. The MergerIterator::advance_impl
future is 1584 bytes because it holds 6 Items. Boxing Item here reduces
the size of the MergerIterator::advance_impl future to 312 bytes.

Bug: b/393365596
Change-Id: I08cd5542fccea472c8bd752e828679ff7bf2b38e
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1198689
Reviewed-by: James Sullivan <jfsulliv@google.com>
Commit-Queue: Chris Drouillard <cdrllrd@google.com>
5 files changed
tree: 79c046ec2553d99784ae4387e735c5133fc586b4
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.