Hi,
On 2023-10-09 18:31:11 -0400, Robert Haas wrote:
> On Mon, Oct 9, 2023 at 4:47 PM Andres Freund <andres@anarazel.de> wrote:
> > I think we might be able to speed some of this up by pre-compute values so we
> > can implement things like bytesleft / UsableBytesInPage with shifts. IIRC we
> > already insist on power-of-two segment sizes, so instead of needing to divide
> > by a runtime value, we should be able to shift by a runtime value (and the
> > modulo should be a mask).
>
> Huh, is there a general technique for this when dividing by a
> non-power-of-two?
There is, but I was just having a brainfart, forgetting that UsableBytesInPage
isn't itself a power of two. The general technique is used by compilers, but
doesn't iirc lend itself well to be done at runtime.
Greetings,
Andres Freund