Skip to content
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

Evaluate Profile-Guided Optimization (PGO) #1221

Open
zamazan4ik opened this issue Jul 13, 2023 · 2 comments
Open

Evaluate Profile-Guided Optimization (PGO) #1221

zamazan4ik opened this issue Jul 13, 2023 · 2 comments

Comments

@zamazan4ik
Copy link

Hi!

Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects. The results are here.

Since PGO showed measurable improvements in compiler/interpreter-like workloads (CPython, Clang, Clangd, clang-format, GCC, Rustc, CrosVM, etc.) I think it could be useful to check PGO for the Janet project too.

We need to perform PGO benchmarks on Janet. And if it shows improvements - add a note about possible improvements in Janet VM performance with PGO. Providing an easier way (e.g. a build option) to build scripts with PGO can be useful for the end-users too.

@bakpakin
Copy link
Member

Thanks for the interest here. Janet has a sort of builtin natural target for PGO in the bootstrapping process, which is just executing src/boot/boot.janet. For interpreters I imagine that anything that targets the instruction dispatch loop would be good, but other modules that I think would see big impacts are workloads that target src/core/peg.c (basically another interpreter inside the main interpreter).

Hacking the Makefile for PGO shouldn't be too difficult, but I haven't done it recently.

@iacore
Copy link
Contributor

iacore commented Sep 20, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants