I just finished up some work bringing a Linux/FreeBSD server project to
Windows. Enough to test at least. (I have to find a version of getopt() for
Windows) What I found was surprising.

My server project is like a database cache for Web servers. It is used to keep
session information across page views without getting database hits for each
page. One of the reasons why I wrote it was PostgreSQL's behavior with updates.

At first I tried to use Cygwin, and it was really easy, but it was very slow.
Then I decided that I had to write the actual Windows bits myself. (I
programmed Windows and NT for over a decade, so I remember how)

The difference was astounding!!! On the machine running Windows, sitting on a
switch, The cygwin version could get roughly 50 session dialogs a second, the
native Windows version was able to get roughly 250. I am sure that this is
mostly due to the implementation of pthread_mutex and sockets, because I make
very few other system calls.

The question which pops in to mind, has anyone run the PostgreSQL that comes
with cygwin and compared it on the same machine running Linux or FreeBSD? Is
the performance comparable?

If not, does anyone know if that is due to the inefficiencies between *NIX and
Windows? Or is Cygwin generally slow all around?

Does anyone care enough about Windows to attempt a "native Windows" port? I
would be able to contribute some time. (couple hours a day, a few days a week)

Fri, 05 Oct 2001 08:33:13 -0400
mlw <markw@mohawksoft.com>
Windows native version of PostgreSQL.