[ninjago] Critical path calculation version 2

Implements critical path calculation based on float. This is necessary
for further implementing calculating drag of critical steps.

Find benchmarks comparing to existing critical path function below.
Note these benchmarks are for comparison only, they include graph
reading and parsing as well. This is because we need to use clean
graphs with no memoization.

BenchmarkCriticalPath
BenchmarkCriticalPath/CriticalPath
BenchmarkCriticalPath/CriticalPath-96     8546        144020 ns/op
BenchmarkCriticalPath/CriticalPathV2
BenchmarkCriticalPath/CriticalPathV2-96   7858        147022 ns/op

Test: fx test --host -o ninjagraph_test
Change-Id: I978b05643fbdb167070c6a08136b706fb9a4de95
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/442476
Commit-Queue: Jay Zhuang <jayzhuang@google.com>
Reviewed-by: Shai Barack <shayba@google.com>
Testability-Review: Shai Barack <shayba@google.com>
2 files changed
tree: 5f50bcf01ac6ea3d95e678088c49901c4f1b860b
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. AUTHORS
  21. BUILD.gn
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

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.