Обсуждение: [PATCH] Precompute string lengths in PerformRadiusTransaction
Hi, hackers I noticed that the `PerformRadiusTransaction` function is invoked in a loop, and the function itself contains internal loops that repeatedly call strlen() on the 'passwd' and 'secret' strings. While the optimization gain may be minimal, I still think it’s worth making the change — we can precompute the lengths of these two strings at the start of the function to eliminate redundant strlen() calls. -- Regards, Man Zeng www.openhalo.org
Вложения
Hi, > I noticed that the `PerformRadiusTransaction` function is invoked in a loop, > and the function itself contains internal loops that repeatedly call strlen() on the 'passwd' and 'secret' strings. > While the optimization gain may be minimal, I still think it’s worth making the change — > we can precompute the lengths of these two strings at the start of the function to eliminate redundant strlen() calls. Good find. We may also consider making both passwd_len and secret_len `const`. -- Best regards, Aleksander Alekseev
> Good find. We may also consider making both passwd_len and secret_len `const`. Thanks ! — Added const for passwd_len and secret_len. -- Regards, Man Zeng www.openhalo.org
Вложения
On 1/5/26 3:51 PM, Aleksander Alekseev wrote: >> I noticed that the `PerformRadiusTransaction` function is invoked in a loop, >> and the function itself contains internal loops that repeatedly call strlen() on the 'passwd' and 'secret' strings. >> While the optimization gain may be minimal, I still think it’s worth making the change — >> we can precompute the lengths of these two strings at the start of the function to eliminate redundant strlen() calls. > > Good find. We may also consider making both passwd_len and secret_len `const`. I don't think this is a thing we generally do in our code. We have local variables all over the place which do not use const. The original patch looks good to me. While it is not a performance critical code path calling strlen() in a loop is not very nice. Andreas
On Mon, Jan 5, 2026 at 9:36 PM zengman <zengman@halodbtech.com> wrote: > I noticed that the `PerformRadiusTransaction` function is invoked in a loop, > and the function itself contains internal loops that repeatedly call strlen() on the 'passwd' and 'secret' strings. > While the optimization gain may be minimal, I still think it’s worth making the change — > we can precompute the lengths of these two strings at the start of the function to eliminate redundant strlen() calls. Shortly after you posted this, it was decided that we're going to remove this method entirely: https://wiki.postgresql.org/wiki/RADIUS -- John Naylor Amazon Web Services
> > I noticed that the `PerformRadiusTransaction` function is invoked in a loop, > > and the function itself contains internal loops that repeatedly call strlen() on the 'passwd' and 'secret' strings. > > While the optimization gain may be minimal, I still think it’s worth making the change — > > we can precompute the lengths of these two strings at the start of the function to eliminate redundant strlen() calls. > > Shortly after you posted this, it was decided that we're going to > remove this method entirely: > > https://wiki.postgresql.org/wiki/RADIUS Hi, Okay, thank you very much for reminding me. I'll retract this patch. -- regards, Man Zeng