-
Notifications
You must be signed in to change notification settings - Fork 414
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cache file contents in action builder by name. #6555
Cache file contents in action builder by name. #6555
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Please sign your commit, by adding a line like this (but with your name/email) into the commit message:
Signed-off-by: Andrey Mokhov <[email protected]>
It's worth adding that in our monorepo, this change sped up null builds by the factor of 2.6x! We were reading every file 6 times on average. @ejgallego Could you check if this change makes Coq null builds noticeably faster? (Asking because presumably Coq build is pretty expensive.) |
@dkalinichenko-js There is a little benchmark in perf.sh. Could you run it and show the results? |
Signed-off-by: Diana Kalinichenko <[email protected]>
c9d1f3e
to
97df87f
Compare
Oops, done. |
Signed-off-by: Diana Kalinichenko <[email protected]>
…inichenko-js/dune into cache-file-contents-by-name
@snowleopard our monorepo coq-universe needs some work since we are updating the Coq version, but I'll make a note to test ASAP when it is functional again. |
Unfortunately can't get the benchmark to compile on my machine, but I don't expect much improvement outside of Jane due to different build rules. Merging anyway. |
@Alizter Thanks, please share the results! |
* main: (58 commits) test: formatting of alternative dune files (ocaml#6567) refactor: remove Modules.is_empty (ocaml#6564) refactor: module kinds (ocaml#6562) refactor(coq): resolve lack of coqc properly Cache file contents in action builder by name. (ocaml#6555) fix: re-enable dune on older macos sdk's (ocaml#6515) fix: do not hide lib interface module (ocaml#6549) test: remove pkg-config output for reproducibility (ocaml#6543) melange: add test for ocaml flags (ocaml#6548) fix: improve virtual library error messages test: virtual library and impl locations test: alias module regression (ocaml#6544) refactor(merlin): dump config sub command (ocaml#6547) refactor: simplify merlin (ocaml#6508) chore(nix): use nix-overlays for the slim devShell (ocaml#6546) fix: module compilation rule env (ocaml#6527) chore: update nix (ocaml#6536) fix: merlin rules with pp's (ocaml#6474) Call [Dune_util.Log.init] as soon as possible (ocaml#6542) refactor: speed up stdlib build (ocaml#6524) ...
* main: test: formatting of alternative dune files (ocaml#6567) refactor: remove Modules.is_empty (ocaml#6564) refactor: module kinds (ocaml#6562) refactor(coq): resolve lack of coqc properly Cache file contents in action builder by name. (ocaml#6555) fix: re-enable dune on older macos sdk's (ocaml#6515) fix: do not hide lib interface module (ocaml#6549) test: remove pkg-config output for reproducibility (ocaml#6543) melange: add test for ocaml flags (ocaml#6548) fix: improve virtual library error messages test: virtual library and impl locations test: alias module regression (ocaml#6544) refactor(merlin): dump config sub command (ocaml#6547)
Improve overall performance in builds by removing redundant reads. Previously, Dune was caching file contents only by callsites.