Re: [HACKERS] fork/exec for backend
От | Tom |
---|---|
Тема | Re: [HACKERS] fork/exec for backend |
Дата | |
Msg-id | Pine.BSF.3.95q.980124164748.20454A-100000@misery.sdf.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] fork/exec for backend (Bruce Momjian <maillist@candle.pha.pa.us>) |
Ответы |
Re: [HACKERS] fork/exec for backend
|
Список | pgsql-hackers |
On Sat, 24 Jan 1998, Bruce Momjian wrote: > > 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. Regardless on the method used, the dynamic executables need to undergo a link step during exec(). Linking static reduces that. > 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. Linux uses ELF shared libraries. I don't know how those work. I don't FreeBSD to have a high call overhead for dynamic libs at all. Static executables just start faster thats all. > -- > Bruce Momjian > maillist@candle.pha.pa.us > > Tom
В списке pgsql-hackers по дате отправления: