[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Christopher Cramer <tsuyoshi@y...> |
| Subject: | re: We should all be forking |
Jon Harrop: > I believe the performance relies upon the Linux kernel lazily copying > the process. Does OSX also do that? It's called copy-on-write and I would be surprised if OSX didn't also do it. The only way to start a new process is to fork, so even if you're just running another program you fork first, and then replace the process image with the new program with exec. If the fork had to copy the entire process image before just throwing it away upon exec, I think Unix, which is based around a philosophy of piping between multiple processes, would have abandoned fork a long time ago. Then again, there is vfork, so I guess they almost did abandon it at one point. This method doesn't work well at all on Windows, as I understand it. BTW your code looks a lot nicer than mine. The |> is brilliant, I think. I'm a little surprised you cut the speed in half without using select. And looking at your code I just realized I have a bug in mine...