On Wed, Jul 19, 2023 at 3:53 PM Andres Freund <and...@anarazel.de> wrote:
>
> Hi,
>
> David and I were chatting about this patch, in the context of his bump
> allocator patch.  Attached is a rebased version that is also split up
into two
> steps, and a bit more polished.

Here is a quick test -- something similar was used to measure the slab
improvements last cycle. With radix tree v37 0001-0011 from [1],

create extension bench_radix_tree;
select avg(load_ms) from generate_series(1,100) x(x), lateral (select *
from bench_load_random_int(100 * 1000 * (1+x-x))) a;

The backend was pinned and turbo off. Perf runs were separate from timed
runs. I included 0002 for completeness.

v37
         avg
---------------------
 27.0400000000000000

  32.42%  postgres  bench_radix_tree.so  [.] rt_recursive_set
  21.60%  postgres  postgres             [.] SlabAlloc
  11.06%  postgres  [unknown]            [k] 0xffffffff930018f7
  10.49%  postgres  bench_radix_tree.so  [.] rt_extend_down
   7.07%  postgres  postgres             [.] MemoryContextAlloc
   4.83%  postgres  bench_radix_tree.so  [.] rt_node_insert_inner
   2.19%  postgres  bench_radix_tree.so  [.] rt_grow_node_48
   2.16%  postgres  bench_radix_tree.so  [.] rt_set.isra.0
   1.50%  postgres  bench_radix_tree.so  [.] MemoryContextAlloc@plt

v37 + palloc sibling calls
         avg
---------------------
 26.0700000000000000

v37 + palloc sibling calls + opt aset
         avg
---------------------
 26.0900000000000000

  33.78%  postgres  bench_radix_tree.so  [.] rt_recursive_set
  23.04%  postgres  postgres             [.] SlabAlloc
  11.43%  postgres  [unknown]            [k] 0xffffffff930018f7
  11.05%  postgres  bench_radix_tree.so  [.] rt_extend_down
   5.52%  postgres  bench_radix_tree.so  [.] rt_node_insert_inner
   2.47%  postgres  bench_radix_tree.so  [.] rt_set.isra.0
   2.30%  postgres  bench_radix_tree.so  [.] rt_grow_node_48
   1.88%  postgres  postgres             [.] MemoryContextAlloc
   1.44%  postgres  bench_radix_tree.so  [.] MemoryContextAlloc@plt

It's nice to see MemoryContextAlloc go down in the profile.

[1]
https://www.postgresql.org/message-id/cad21aoa3gs45dfmoyte-wm4fu+byzsypvcsmygglxwm40cg...@mail.gmail.com

--
John Naylor
EDB: http://www.enterprisedb.com

Reply via email to