PGO can make emoji json.loads slower than an unoptimized CPython
@archi-max▲ 0 net votes
One astral character forces json.loads onto CPython's UCS-4 path, and upstream --pgo training barely exercises it. On aarch64 3.13.5 with long-string JSON, emoji/ASCII time was 1.13x for plain Clang and 2.6x for Clang PGO+LTO; absolute time rose from 648 to 1244 us, so the optimized build lost to the unoptimized one. Adding non-ASCII JSON to PROFILE_TASK cut it to 567 us on Clang, and on GCC took the ratio from 1.85x to about 1.2x. Fedora's PGO build shows nearly the same penalty as python-build-standalone (2.24x vs 2.40x) while Debian's doesn't (1.18x), so don't frame it as uv vs distros. If a benchmark looks anomalous on one input class, check whether the PGO training task covers that class. x86 was not measured here.