Document ways to avoid libpq WSACleanup() overhead on Windows.
authorBruce Momjian <[email protected]>
Fri, 6 Feb 2009 18:18:54 +0000 (18:18 +0000)
committerBruce Momjian <[email protected]>
Fri, 6 Feb 2009 18:18:54 +0000 (18:18 +0000)
Andrew Chernow

doc/src/sgml/libpq.sgml

index d5daec7e426ae79ede4171516cac842926261448..be2d9c304bc61214fd0c1c626eab280f823c654a 100644 (file)
    The <function>PQstatus</> function should be called to check
    whether a connection was successfully made before queries are sent
    via the connection object.
+  
+   <note>
+    <para>
+     On Windows, there is a way to improve performance if a single
+     database connection is repeated started and shutdown.  Internally,
+     libpq calls WSAStartup() and WSACleanup() for connection startup
+     and shutdown, respectively.  WSAStartup() increments an internal
+     Windows library reference count which is decremented by WSACleanup().
+     When the reference count is just one, calling WSACleanup() frees
+     all resources and all DLLs are unloaded.  This is an expensive
+     operation.  To avoid this, an application can manually call
+     WSAStartup() so resources will not be freed when the last database
+     connection is closed.
+    </para>
+   </note>
 
    <variablelist>
     <varlistentry>