Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-pgo
Various materials about Profile Guided Optimization and other similar stuff like AutoFDO, Bolt, etc.
https://github.com/zamazan4ik/awesome-pgo
Last synced: 2 days ago
JSON representation
-
PGO Showcases
-
Compilers and interpreters
- cperl
- Rust
- Rust Lang blog
- Kobzol blog
- Clang
- KDE blog
- Article
- one - core/pull/79454#issuecomment-869055079)
- Phoronix post
- ArchLinux bugtracker - could be outdated.
- GCC
- Python
- Blog
- GitHub PR
- Official blog
- Go compiler performance numbers
- GitHub issue
- GitHub PR
- PHP
- Alibaba post
- Phoronix benchmarks
- Ruby - forum.com/t/compiling-ruby-w-profile-guided-optimization/60564)
- Lua - Reddit](https://www.reddit.com/r/lua/comments/151dtyu/profileguided_optimization_pgo_on_lua_interpreters/)
- tfcompile - 1637143591)
- GitHub issue
- GitHub repo
- GitHub issue
- GitHub issue
- PGO effects on devirtualization in C++
- GitHub comment - Guided-Optimization-with-LDC.html) and [this](https://johanengelen.github.io/ldc/2016/04/13/PGO-in-LDC-virtual-calls.html) articles
- GitHub comment
- GitHub comment
-
Developer tooling
- typos - ci/typos/issues/827#issue-1888263250)
- Clangd
- JetBrains blog
- GitHub issue
- Clang-Tidy - project/issues/63486#issuecomment-1606147035)
- lld - project/issues/63486#issuecomment-1607953028)
- clang-format - project/issues/63486#issuecomment-1617008106)
- Uncrustify
- Medium
- Rust Analyzer - lang/rust-analyzer/issues/9412#issuecomment-1298188709)
- GitHub comment
- GitHub comment
- GitHub comment
-
Databases
- NativeDB - herlemont/native_db/discussions/92#discussion-6053050)
- Qdrant
- Microbenchmarks
- OceanBase - 1732874282)
- PostgreSQL
- Mailing list thread
- MariaDB
- Official MariaDB article
- Blog
- MySQL
- oneAPI report
- A user report
- ClickHouse - 1589541199)
- MongoDB
- Redis
- SQLite
- SQLite forum discussion
- YDB - platform/ydb/issues/140#issuecomment-1483943715)
- FoundationDB
- DuckDB - 6254284)
- Memcached
- DragonflyDB - 1616777005)
- YugabyteDB - db/commit/34cb791ed9d3d5f8ae9a9b9e9181a46485e1981d)
- ScyllaDB
- GreptimeDB
- Databend - 1566210063)
- Skytable
- RonDB - 1624188886)
- ReDB
- GitHub comment in the main repo
- GitHub comment in NativeDB repo
- Nebula - graph.io/3.5.0/8.service-tuning/enable_autofdo_for_nebulagraph/)
- GitFlic issue
- SQLite forum discussion
- GitHub comment
- sqlite-parquet-vtable PGO results
- Blog
- GitHub comment
-
Other
- Drill
- hck - guided-optimization)
- GitHub comment
- GitHub comment
- GitHub discussion
- GitHub comment
- Release notes
- Some notes on GitHub
- Handbrake - 865630524)
- CP2K
- Wordpress - pgo-optimizations-lead-to-20.html)
- Blosc blog
- Goose - goose-egg-compile-time-adventure)
- Reddit post
- GCC 8
- GCC 9
- GCC 10
- More GCC 10
- GCC 11
- GCC 12
- ClamAV
- Mailing list
- Typst
- Cemu - project/Cemu/issues/797#issuecomment-1521169155)
- GitHub comment
- OpenMandriva forum
- Docs
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub comment
- GitHub comment
- GitHub comment
- MRCC
- GitHub issue
- slides
- GitHub issue
- GitHub issue
- GitHub comment
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub comment
- GitHub issue
- GitHub issue
- GitHub discussion
- GitHub issue
- GitHub issue
- GitHub issue
- Study report
- GitHub discussion
- Phoronix post
- GitHub discussion
- FreeBSD Bugzilla comment
- GitHub issue
- GitHub discussion
- GitHub discussion
- GitHub comment
- GitHub issue
- GitHub issue
- GitHub discussion
- GitHub discussion
- GitHub discussion
- Blog - keep it in mind.
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub discussion
- GitHub discussion
- GitHub issue
- GitHub comment
- Chromium issue tracker
- Habr comment
- GitHub discussion
- GitHub comment
- GitHub discussion
- GitHub comment
- GitHub discussion
- GitHub comment
- Suricata - content/uploads/2019/11/SURICON2019_Tools-and-Techniques-to-Simplify-Suricata-Performance-Testing.pdf)
- Bevy - run (first) vs non-PGO (second) - [Pastebin](https://gist.github.com/zamazan4ik/bbffbdf9b10e2a281f5d5373347f48ef). In these results you need to interpret performance decrease as "Release version is slower than PGOed" and performance increase as "Release version is faster than PGOed".
- Docs
- GitHub issue
- GitHub discussion
- GitHub issue
- GitHub issue
- HiGHS - 2.5% in `highs ../check/instances/greenbea.mps` workload
- GCC 4.8 - IPA-LTO-news.html), [GCC 6 and Clang 3.9](https://hubicka.blogspot.com/2016/03/building-libreoffice-with-gcc-6-and-lto.html), [GCC8 and Clang 6](https://hubicka.blogspot.com/2018/12/even-more-fun-with-building-and.html), [GCC9](https://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html)
- GitHub discussion
- GitHub comment
- GitHub discussion
- GitHub comment
- GitHub comment
- GitHub comment
- GitHub discussion
- GitHub comment
- GitHub discussion
- GitHub comment
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub commit
- GitHub issue
- GitHub issue
- GitHub issue
- GitHub discussion
- GitHub dicussion
- GitHub issue
- GitHub PR
- GitHub discussion
- GitHub discussion
- GitHub discussion
- GitHub discussion
- GitHub comment
- GitHub discussion
- Benchmark results
- GitHub discussion
- link
- GitHub comment
- GitHub comment
- GitHub comment
- Zulip message
- GitHub comment
- GitHub comment
- GitHub discussion
- GitHub comment
- GitHub comment
-
Browsers
- Chromium
- Chromium blog 1
- Chromium blog 2
- Firefox
- Edge - leaner-more-efficient-microsoft-edge/)
- Opera - faster-opera-for-windows-with-pgo/)
- Edge - leaner-more-efficient-microsoft-edge/)
- Edge - leaner-more-efficient-microsoft-edge/)
-
Logging
- Vector
- Fluent-Bit - bit/discussions/6638#discussioncomment-6419880)
- Rsyslog - 1631807664)
- Blog
-
Operating systems
-
Virtual machines
-
Proxy
-
-
Projects with already integrated PGO into their build scripts
-
Other
- README
- Foot
- tool - stage build
- part
- MinGW build script
- Bash script
- CMake script
- Bazel flag
- Scripts
- Script
- Docs
- Makefile command
- CMake script
- GitHub commit
- Script
- Makefile
- GitHub PR
- GitHub PR
- CMake flag
- CMake scipts
- Configure script
- Official documentation
- repository
- Custom build rule
- GitHub action
- Makefile
- Makefile
- Package recipe
- Script
- CMake module
- Justfile
- Blog
- Docs
- GitHub PR
- CMake script
- GitHub PR
- Makefiles
-
-
PGO support in programming languages and compilers
-
PGO support in build systems
-
Other
- GCC
- Gist
- MSVC
- ICC
- AOCC
- Circle
- rustc
- IFC
- IBM
- MS Blog
- .Net 7
- GraalVM - new-graalvm-release-and-new-free-license-4aab483692f5))
- Go compiler
- GoLLVM - [not yet](https://go.googlesource.com/gollvm/#thinltofdo)
- Seems like supports but I am not sure
- Seems like no
- D
- Nim - lang.org/t/6295)
- almost no
- Zig
- V
- Red
- No
- no
- Flang
- Seems like supports but I am not sure
-
Sampling PGO (AutoFDO) support
- commit - lang.org/beta/unstable-book/compiler-flags/profile_sample_use.html)
-
-
Beyond PGO (could be covered here later as well)
-
Other optimization techniques like BOLT
-
-
Related projects
-
Other optimization techniques like BOLT
-
-
Theory (a little bit)
-
Proxy
-
Project with package-manager integration level
-
Other
-
-
BOLT showcases
-
Sampling PGO (AutoFDO) support
- LLVM in Rustc (Reddit)
- GitHub comment
- Slides
- Results on building Clang
- Linaro results
- on AMD 7950X3D
- GitHub comment from LLVM
- Facebook paper
- Blog
- Blog
- Paper
- GitHub discussion
- GitHub comment
- GitHub docs
- GitHub issue
- GitHub issue
- GitHub comment
- Android blog
- Gnome blog
- GitHub comment
- GitHub PR
- Blog
- Phoronix article
-
-
Are we BOLT yet?
-
Sampling PGO (AutoFDO) support
-
-
Projects with already integrated BOLT into their build scripts
-
Sampling PGO (AutoFDO) support
-
-
LTO, PGO, BOLT, etc and provided by someone binaries
-
PGO adoption across Linux distros
-
-
BOLT adoption across Linux distros
-
PGO adoption across Linux distros
- Gentoo bugtracker
- Bugzilla
- GitHub issue
- Website - they are trying to integrate BOLT as much as possible
- Ubuntu forums
- Gitlab issue
- Bugzilla
- GitHub issue
- GitHub discussion
- GitHub discussion
- GitHub discussion
- GitHub discussion
- FreeBSD forum
- GitHub issue
- Ticket
- GitHub issue
- GitHub issue
- GitHub discussion
- Fedora forum
- JIRA about llvm-bolt addition
- disabled - project/issues/111530
- yes
-
-
Traps
-
Other optimization techniques like BOLT
- CSPGO - three stages)
- here
- GitHub issue
- GitHub issue
- issues
- GitHub issue
- LBR
-
-
Useful links
-
Other optimization techniques like BOLT
- Youtube - 09/slides/PGO_Instrumentation.pdf)
- Some notes about PGO
- link
- cperl notes on LTO, PGO, BOLT
- blog
- link
- link
- Microsoft learn
- slides
-
-
Where PGO did not help (according to my tests)
-
Other optimization techniques like BOLT
- Catboost - I think this is due to the highly math-oriented nature of this. I did a test on `fit` and `calc` modes (training and evaluation, respectively) on `epsilon` dataset. In the `calc` mode PGO for some reason made things even worse. Maybe, PGO could help in other modes but I didn't test it (yet).
-
-
Project-specific documentation about PGO
-
Other
-
Categories
PGO Showcases
243
Projects with already integrated PGO into their build scripts
37
PGO support in programming languages and compilers
33
BOLT showcases
23
BOLT adoption across Linux distros
22
LTO, PGO, BOLT, etc and provided by someone binaries
16
Useful links
9
Traps
7
Are we BOLT yet?
6
Projects with already integrated BOLT into their build scripts
6
Proxy
6
Related projects
6
Beyond PGO (could be covered here later as well)
5
Theory (a little bit)
2
Project-specific documentation about PGO
1
Project with package-manager integration level
1
Where PGO did not help (according to my tests)
1
Sub Categories
Keywords
rust
5
compiler
2
performance
1
jmeter
1
http
1
real-time
1
orm
1
mobile
1
kv-store
1
ios
1
embedded-database
1
database
1
cross-platform
1
android
1
spell-checker
1
code-quality
1
cli
1
perl
1
language
1
interpreter
1
dynamic-typing
1
parallelism
1
parallelisation
1
parallel-programming
1
parallel-computing
1
optimisation
1
operating-systems
1
multi-cores
1
machine-learning
1
auto-tuning
1
artificial-intelligence
1
pgo
1
cargo
1
bolt
1
wayland
1
terminal
1
minimalistic
1
lightweight
1
text-processing
1
command-line
1
tester
1
performance-testing
1