Re: 7.2 is slow? [compile problem]
От | Ashley Cambrell |
---|---|
Тема | Re: 7.2 is slow? [compile problem] |
Дата | |
Msg-id | 3C2135F7.5010700@freaky-namuh.com обсуждение исходный текст |
Ответ на | Re: 7.2 is slow? (Bruce Momjian <pgman@candle.pha.pa.us>) |
Ответы |
Re: 7.2 is slow? [compile problem]
("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
|
Список | pgsql-hackers |
I haven't actually tried to compile 7.2 from the CVS, but there seems to be a problem? [maybe on my side] make[3]: Leaving directory `/home/ash/ash-server/Work/build/pgsql/src/backend/utils' gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -Wl,-rpath,/tmp//lib -export-dynamic access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o parser/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o libpq/SUBSYS.o main/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o utils/SUBSYS.o -lz -lcrypt -lresolv -lnsl -ldl -lm -lreadline -o postgres nodes/SUBSYS.o: In function `pprint': nodes/SUBSYS.o(.text+0xdc95): undefined reference to `MIN' nodes/SUBSYS.o(.text+0xdcfd): undefined reference to `MIN' collect2: ld returned 1 exit status make[2]: *** [postgres] Error 1 make[2]: Leaving directory `/home/ash/ash-server/Work/build/pgsql/src/backend' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/ash/ash-server/Work/build/pgsql/src' make: *** [all] Error 2 In ./src/backend/nodes/print.c: /* outdent */ if (indentLev > 0) { indentLev--; indentDist = MIN(indentLev * INDENTSTOP, MAXINDENT); } If I add #ifndef MIN #define MIN(a,b) (((a)<(b)) ? (a) : (b)) #endif to print.c it compiles fine. Ashley Cambrell <snip> > >That's annoying. The LWLock changes were intended to solve the >inefficiency with multiple CPUs, but it seems like we still have a >problem somewhere. > >Could you recompile the backend with profiling enabled and try to get >a profile from your test case? To build a profilable backend, it's >sufficient to do > > cd .../src/backend > gmake clean > gmake PROFILE=-pg all > gmake install-bin > >(assuming you are using gcc). Then restart the postmaster, and you >should notice "gmon.out" files being dropped into the various database >subdirectories anytime a backend exits. Next run your test case, >and as soon as it finishes copy the gmon.out file to a safe place. >(You'll only be able to get the profile from the last process to exit, >so try to make sure that this is representative. Might be worth >repeating the test a few times to make sure that the results don't >vary a whole lot.) Finally, do > > gprof .../bin/postgres gmon.out >resultfile > >to produce a legible result. > >Oh, one more thing: on Linuxen you are likely to find that all the >reported routine runtimes are zero, rendering the results useless. >Apply the attached patch (for 7.2beta) to fix this. > > regards, tom lane > >*** src/backend/postmaster/postmaster.c.orig Wed Dec 12 14:52:03 2001 >--- src/backend/postmaster/postmaster.c Mon Dec 17 19:38:29 2001 >*************** >*** 1823,1828 **** >--- 1823,1829 ---- > { > Backend *bn; /* for backend cleanup */ > pid_t pid; >+ struct itimerval svitimer; > > /* > * Compute the cancel key that will be assigned to this backend. The >*************** >*** 1858,1869 **** >--- 1859,1874 ---- > beos_before_backend_startup(); > #endif > >+ getitimer(ITIMER_PROF, &svitimer); >+ > pid = fork(); > > if (pid == 0) /* child */ > { > int status; > >+ setitimer(ITIMER_PROF, &svitimer, NULL); >+ > free(bn); > #ifdef __BEOS__ > /* Specific beos backend startup actions */ > >---------------------------(end of broadcast)--------------------------- >TIP 5: Have you checked our extensive FAQ? > >http://www.postgresql.org/users-lounge/docs/faq.html >
В списке pgsql-hackers по дате отправления:
Следующее
От: "Christopher Kings-Lynne"Дата:
Сообщение: Re: [PATCHES] Problem compiling postgres sql --with-tcl