Re: [HACKERS] Profile of current backend - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] Profile of current backend |
Date | |
Msg-id | 199802052011.PAA17974@candle.pha.pa.us Whole thread Raw |
In response to | Profile of current backend (Mattias Kregert <matti@algonet.se>) |
Responses |
Re: [HACKERS] Profile of current backend
|
List | pgsql-hackers |
Interesting. Nothing is jumping out at me. Looks like we could try to clean up heapgettup() to see if there is anything in there that can be speeded up. None of the calls looks like it should be inlined. Do you see any that look good for inlining? > > Meskes, Michael wrote: > > > > I take it some of you have already run the backend against a profiler. > > Could anyone please tell me which functions need works most? > > SYSTEM: Linux 2.0.29, gcc 2.7.2 > ------------------------------- > [make distclean] > [CVSup'ed current source 1998-02-05] > [./configure] > [make] > [CUSTOM_LDFLAGS not settable in Makefile.custom ...] > [... setting LDFLAGS=-pg ins Makefile.global] > > --> fmgr.c: In function `fmgr_pl': > --> fmgr.c:46: `fmgr_pl_finfo' undeclared (first use this function) > [fix] cp backend/utils/fmgr.h backend/utils/fmgr/fmgr.h > > [make install] > [Run initdb] > [Regression tests] > strings .. failed [ok] > lseg .. failed [new operator <= on lseg] > horology .. failed [daylight savings error?] > triggers .. failed > select_views .. failed > > > PROFILE OF REGRESSION TEST: > --------------------------- > time seconds seconds calls ms/call ms/call name > 35.16 7.97 7.97 mcount (profiler overhead) > 5.91 9.31 1.34 9924 0.14 0.20 heapgettup > 4.54 10.34 1.03 234597 0.00 0.01 hash_search > 2.12 10.82 0.48 151781 0.00 0.00 SpinAcquire > 2.03 11.28 0.46 46635 0.01 0.02 SearchSysCache > 1.63 11.65 0.37 171345 0.00 0.00 tag_hash > 1.46 11.98 0.33 20511 0.02 0.02 yylex > 1.41 12.30 0.32 31311 0.01 0.03 LockAcquire > 1.28 12.59 0.29 1522 0.19 0.61 yyparse > 1.24 12.87 0.28 41176 0.01 0.01 fmgr_isbuiltin > 1.01 13.10 0.23 201572 0.00 0.00 AllocSetAlloc > 0.84 13.29 0.19 186214 0.00 0.00 OrderedElemPop > 0.75 13.46 0.17 42896 0.00 0.00 nocachegetattr > 0.71 13.62 0.16 29869 0.01 0.04 LockRelease > 0.66 13.77 0.15 151781 0.00 0.00 SpinRelease > 0.66 13.92 0.15 88766 0.00 0.01 newNode > 0.66 14.07 0.15 52248 0.00 0.00 _bt_compare > ... around 1850 functions follows (0.66 - 0.0%) > > heapgettup (called by, calling): > -------------------------------- > index % time self children called name > 0.01 0.01 96/9924 heap_markpos [448] > 0.21 0.11 1566/9924 heap_restrpos [102] > 1.12 0.58 8262/9924 heap_getnext [20] > [14] 13.8 1.34 0.69 9924 heapgettup [14] > 0.04 0.14 9924/9924 RelationGetBufferWithBuffer [148] > 0.03 0.15 5642/5702 ReleaseAndReadBuffer [145] > 0.10 0.00 26276/42896 nocachegetattr [158] > 0.01 0.08 7111/9607 HeapTupleSatisfiesVisibility [185] > 0.04 0.00 117785/126582 char16eq [339] > 0.02 0.00 111941/111994 int4eq [427] > 0.02 0.00 109647/112329 nameeq [426] > 0.00 0.01 1770/31585 ReleaseBuffer [134] > 0.01 0.00 14000/50173 PageGetMaxOffsetNumber [341] > 0.01 0.00 5185/5433 chareq [537] > 0.01 0.00 15566/90147 BufferGetBlock [311] > 0.01 0.00 17336/240911 BufferIsValid [207] > 0.00 0.00 4/1973 int2eq [575] > 0.00 0.00 7412/7412 nextpage [1186] > 0.00 0.00 951/1358 SetBufferCommitInfoNeedsSave [1253] > -------------------------------- > > The *complete* gprof output is here: > ftp://postgresql.org/pub/incoming/regression-profile-980205.gz 156k > > /* m */ > > -- Bruce Momjian maillist@candle.pha.pa.us
pgsql-hackers by date: