Re: [PATCH] Use optimized single-datum tuplesort in ExecSort
От | Ranier Vilela |
---|---|
Тема | Re: [PATCH] Use optimized single-datum tuplesort in ExecSort |
Дата | |
Msg-id | CAEudQArTDobADxmj=q_g-jYLaOodvW=JoWEc11ebNVRoG4xVdw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Use optimized single-datum tuplesort in ExecSort (David Rowley <dgrowleyml@gmail.com>) |
Список | pgsql-hackers |
Em qua., 14 de jul. de 2021 às 22:22, David Rowley <dgrowleyml@gmail.com> escreveu:
On Thu, 15 Jul 2021 at 12:30, Ranier Vilela <ranier.vf@gmail.com> wrote:
>
> Em qua., 14 de jul. de 2021 às 21:21, David Rowley <dgrowleyml@gmail.com> escreveu:
>> 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)
You do know that branch is in a function that's only executed once
during executor initialization, right?
The branch prediction should work better.
I have no idea why it works worse.
I redid all tests:
notebook 8GB RAM 256GB SSD
ubuntu 64 bits (20.04)
clang-12
powerhigh (charger on)
none configuration (all defaults)
HEAD | v6 | v7b | v8 | v6 vs head | v7b vs v6 | v8 vs v7b | |
Test1 | 576,868013 | 940,947236 | 1090,253859 | 1016,0443 | 163,11% | 115,87% | 93,19% |
Test2 | 184,748363 | 177,6254 | 177,346229 | 178,230258 | 96,14% | 99,84% | 100,50% |
Test3 | 410,030055 | 541,889704 | 605,843924 | 534,946166 | 132,16% | 111,80% | 88,30% |
Test4 | 153,331752 | 147,98418 | 148,010894 | 147,771155 | 96,51% | 100,02% | 99,84% |
Test5 | 268,97555 | 301,979647 | 316,928492 | 300,94932 | 112,27% | 104,95% | 94,96% |
Test6 | 234,910125 | 259,71483 | 269,851427 | 260,567637 | 110,56% | 103,90% | 96,56% |
Test7 | 142,704153 | 136,09163 | 136,802695 | 136,935709 | 95,37% | 100,52% | 100,10% |
Test8 | 498,634855 | 763,482151 | 867,350046 | 804,833884 | 153,11% | 113,60% | 92,79% |
The values are high here, because now, the tests are made with full power of cpu to all patchs!
I think that more testing is needed with v7b and v8.
Anyway, two functions (ExecSortTuple and ExecSortDatum) are almost equal, maybe not a good idea.
file results attached.
regards,
Ranier Vilela
Вложения
В списке pgsql-hackers по дате отправления: