| From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
|---|---|
| To: | tom(at)sdf(dot)com (Tom) |
| Cc: | goran(at)bildbasen(dot)se, hackers(at)postgreSQL(dot)org |
| Subject: | Re: [HACKERS] fork/exec for backend |
| Date: | 1998-01-25 00:24:18 |
| Message-ID: | 199801250024.TAA21721@candle.pha.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
>
>
> On 24 Jan 1998, Goran Thyni wrote:
>
> > Fork on modern unices (linux and (a think) *BSD) cost
> > almost nothing (in time and memory) thanks to COW (copy-on-write).
> > Exec in expensive as it breaks COW.
>
> Not so. Modern Unixs will share executable address space between
> processes. So if you fork and exec 10 identical programs, they will share
> most address space.
>
> If you want to speed this up, link postgresql static. This makes exec()
> cost almost nothing too. postgresql becomes its own best shared library.
>
> Again, this only applies to "modern" systems, but FreeBSD definitely has
> this behaviour.
This is very OS-specific. SunOS-style shared libraries do have a
noticable overhead for each function call. In fact, even though these
are part of BSD44 source, BSDI does not use them, and uses a more crude
shared library jump table, similar to SVr3 shared libraries because of
the SunOS shared library overhead.
I think FreeBSD and Lunix use SunOS style shared libraries, often called
dynamic shared libraries because you can change the function while the
binary is running if you are realy careful.
--
Bruce Momjian
maillist(at)candle(dot)pha(dot)pa(dot)us
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 1998-01-25 00:26:48 | Re: [HACKERS] Re: Browsing the tables and why pgsql does not perform well |
| Previous Message | Bruce Momjian | 1998-01-25 00:21:55 | Re: [HACKERS] fork/exec for backend |