Společnost Canonical se rozhodla, že počínaje verzí Ubuntu 24.04 LTS bude balíček GNU Compiler Collection (GCC) ve výchozím nastavení povolovat ukazatele rámce pro 64bitové platformy. Většina balíčků v Ubuntu bude znovu sestavena s povolenými ukazateli rámce, což usnadní jejich profilování a následnou optimalizaci.
Vývojáři už změnu testují a zdá se, že její praktický dopad na výkon je zanedbatelný. Povolil jsem ukazatele rámce pro Javu a glibc a studoval jsem režii procesoru při této změně, která je obvykle menší než 1 % a obvykle se blíží nule, takže je těžké ji vůbec změřit. Ukazatele rámců umožňují úplnější profilování CPU a profilování mimo CPU. Zlepšení výkonu, které mohou přinést, daleko převyšují relativně malou ztrátu výkonu,
řekl Brendan Gregg, odborník na výkon počítačů.
Procesor při svém běhu do jednoho z registrů ukládá ukazatel rámce při volání funkce. Pokud ho ale funkce nevyužívá, je možné kompilátoru povolit využití tohoto registru jako univerzálního úložiště. To dokáže zefektivnit některé rutiny, ovšem za cenu nemožnosti jejich ladění.
Taková výměna je výhodná na 32bitových platformách, kde je registrů málo. Kód má k dispozici jen osm registrů, z čehož jeden je využit jako ukazatel zásobníku a druhý jako ukazatel rámce. Zvýšení počtu dostupných univerzálně použitelných registrů ze šesti na sedm tak může být významné. Naopak u 64bitových systémů je registrů mnohem víc a efekt jednoho registru navíc je zanedbatelný a nestojí za ztrátu možnosti program ladit a profilovat.
Ukazatele rámců totiž hrají klíčovou roli při zjednodušování procesu sledování zásobníku během profilování. Jejich výchozí povolení v kompilovaných binárkách zajišťuje vývojářům okamžitý přístup k přehlednějším a přesnějším datům pro analýzu výkonu bez nutnosti další konfigurace.