pgsql: Tom Lane writes: > a_ogawa
От | momjian@svr1.postgresql.org (Bruce Momjian) |
---|---|
Тема | pgsql: Tom Lane |
Дата | |
Msg-id | 20050604201412.B8B6252838@svr1.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Log Message: ----------- Tom Lane <tgl@sss.pgh.pa.us> writes: > a_ogawa <a_ogawa@hi-ho.ne.jp> writes: > > It is a reasonable idea. However, the majority part of MemSet was not > > able to be avoided by this idea. Because the per-tuple contexts are used > > at the early stage of executor. > > Drat. Well, what about changing that? We could introduce additional > contexts or change the startup behavior so that the ones that are > frequently reset don't have any data in them unless you are working > with pass-by-ref values inside the inner loop. That might be possible. However, I think that we should change only aset.c about this article. I thought further: We can check whether context was used from the last reset even when blocks list is not empty. Please see attached patch. The effect of the patch that I measured is as follows: o Execution time that executed the SQL ten times. (1)Linux(CPU: Pentium III, Compiler option: -O2) - original: 24.960s - patched : 23.114s (2)Linux(CPU: Pentium 4, Compiler option: -O2) - original: 8.730s - patched : 7.962s (3)Solaris(CPU: Ultra SPARC III, Compiler option: -O2) - original: 37.0s - patched : 33.7s Atsushi Ogawa (a_ogawa) Modified Files: -------------- pgsql/src/backend/utils/mmgr: aset.c (r1.60 -> r1.61) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mmgr/aset.c.diff?r1=1.60&r2=1.61)
В списке pgsql-committers по дате отправления: