Em qua., 14 de jul. de 2021 às 21:21, David Rowley <dgrowleyml@gmail.com> escreveu:
On Thu, 15 Jul 2021 at 12:10, Ranier Vilela <ranier.vf@gmail.com> wrote: > > Em qua., 14 de jul. de 2021 às 20:43, David Rowley <dgrowleyml@gmail.com> escreveu: >> >> On Thu, 15 Jul 2021 at 05:55, Ranier Vilela <ranier.vf@gmail.com> wrote: >> > I repeated (3 times) the benchmark with v8 here, >> > and the results were not good. >> >> Do you have any good theories on why the additional branching that's >> done in v7b vs v8 might cause it to run faster? > > > Branch Predictions works with *more* probable path, > otherwise a penalty occurs and the cpu must revert the results.
But, in v8 there is no additional branch, so no branch to mispredict. I don't really see how your explanation fits.
In v8 the branch occurs at :
+ if (ExecGetResultType(outerPlanState(sortstate))->natts == 1)
datumSort is tested first.
Cpu time is a more expensive resource.
Always is executed two branches, if it is right path, win,
otherwise occurs a penalty time.
It seems much more likely to me that the results were just noisy. It would be good to see if you can recreate them consistently.