Hi, On January 29, 2019 6:25:59 AM PST, Tomas Vondra <tomas.von...@2ndquadrant.com> wrote: >On 1/29/19 8:18 AM, David Rowley wrote: >> ... >> Here are my performance tests of with and without your change to the >> memory contexts (I missed where you posted your results). >> >> $ cat bench.pl >> for (my $i=0; $i < 8912891; $i++) { >> print "1\n1\n2\n2\n"; >> } >> 36a1281f86c: (with your change) >> >> postgres=# copy listp from program $$perl ~/bench.pl$$ delimiter '|'; >> COPY 35651564 >> Time: 26825.142 ms (00:26.825) >> Time: 27202.117 ms (00:27.202) >> Time: 26266.705 ms (00:26.267) >> >> 4be058fe9ec: (before your change) >> >> postgres=# copy listp from program $$perl ~/bench.pl$$ delimiter '|'; >> COPY 35651564 >> Time: 25645.460 ms (00:25.645) >> Time: 25698.193 ms (00:25.698) >> Time: 25737.251 ms (00:25.737) >> > >How do I reproduce this? I don't see this test in the thread you >linked, >so I'm not sure how many partitions you were using, what's the >structure >of the table etc.
I think I might have a patch addressing the problem incidentally. For pluggable storage I slotified copy.c, which also removes the first heap_form_tuple. Quite possible that nothing more is needed. I've removed the batch context altogether in yesterday's rebase, there was no need anymore. Andres -- Sent from my Android device with K-9 Mail. Please excuse my brevity.