Re: texteq/byteaeq: avoid detoast
От | Robert Haas |
---|---|
Тема | Re: texteq/byteaeq: avoid detoast |
Дата | |
Msg-id | AANLkTinBFfeWxcaW8=4fcL72ErUoHA+KuTxYbbr+3mZ_@mail.gmail.com обсуждение исходный текст |
Ответ на | texteq/byteaeq: avoid detoast (Noah Misch <noah@leadboat.com>) |
Ответы |
Re: texteq/byteaeq: avoid detoast
|
Список | pgsql-hackers |
On Mon, Dec 20, 2010 at 1:19 PM, Noah Misch <noah@leadboat.com> wrote: > texteq, textne, byteaeq and byteane detoast their arguments, then check for > equality of length. Unequal lengths imply the answer trivially; given equal > lengths, the functions proceed to compare the actual bytes. We can skip > detoasting entirely when the lengths are unequal. The attached patch implements > this. As submitted, it applies atop of my recent strncmp->memcmp patch, but > they are logically independent. To benchmark some optimal and pessimal cases, I > used the attached "bench-skip-texteq.sql". It uses a few datum sizes and varies > whether the length check succeeds: > > bench-skip-texteq.sql, 10 MiB nomatch: 58.4s previous, 0.00664s patched > bench-skip-texteq.sql, 144 B match: 73.0s previous, 71.9s patched > bench-skip-texteq.sql, 3 B match: 68.8s previous, 67.3s patched > bench-skip-texteq.sql, 3 B nomatch: 45.0s previous, 46.0s patched > > The timing differences in the smaller-length test cases are probably not > statistically significant. Can you add this to the currently-open CommitFest, so we don't lose track of it? https://commitfest.postgresql.org/action/commitfest_view/open -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: