I use privoxy to filter out ads etc and was curious if privoxy supported pipelining to improve browsing speed (like Mozilla and Chimera do) so I asked a question about this at privoxy's supportpages at sourceforge, and got this interesting answer:
[Editor's note: Please see the comments for some pretty good evidence that this note contains bad advice...]
Date: 2003-01-17 00:49Read the rest of the article for the remainder of the reply I received...
Sender: nobody
Logged In: NO
You should pay particular attention to the same Mozilla screen where you can specify pipelining. It says: "WARNING: pipelining is an experimental feature, designed to improve page-load performance, that is unfortunately not well supported by some web servers and proxies."
My opinion is that pipelining is NOT a good idea. It can slow down everything because the results must be streamed back in their entirety in the same sequence that they were requested -- and getting a 100Byte GIF will have to wait on a 200K SWF before the browser even sees the 1st byte of it. Pipelining counteracts a browser's multi-threading capabilities and also the server's multi-threading capabilities. It's just not a good idea even when everything works right - everything waits on the single-threaded pipe.
The note continues:
For enhancing browser speed - real speed either piecemeal or total page loading - you should consider tuning your max# connections per server instead. You can create a new file called user.js in your mozilla profile directory and put the following lines in it (or add these lines if that file already exists):Please don't credit me with this information, even though I find it very interesting. It would be interesting to get some reader feedback on good values for these settings for different connections speeds...user_pref("network.http.max-connections", 64);Now you must tweak those settings to find the values that work best for your particular browser habits and network configuration. Please realize that very high values may hurt performance as much as very low values will. Some sites advocate absurdly high values without having done any real throughput testing.
user_pref("network.http.max-connections-per-server", 8);
user_pref("network.http.max-persistent-connections-per-proxy", 20);
user_pref("network.http.max-persistent-connections-per-server", 10);
The max# connections can also be tweaked in other browsers. Some Google lookups will show exactly how to do it:In the specific case of Privoxy - NO, Pipelining is not supported. Nor should it be in any proxy capable of filtering. A filtering proxy itself responds directly to many requests without sending-to or waiting-on another server -- and that conflicts with the principle of pipelining. In order to support pipelining the proxy would have to delay a filtered response within a stream and insert it in the appropriate place where the server would have placed it. Get that -- the proxy would have to delay its responses. Others may disagree. My opinion is that pipelining is a terrible idea. Reused HTTP/1.1 connections are very much prefered since they are more efficent for the client browsers and for all the servers.
- For IE that's done in MaxConnectionsPerServer registry entries.
- Netscape 4.x uses a preference setting in its prefs.js file.
- Opera users set it on the Network preferences screen.
Guy.
Mac OS X Hints
http://hints.macworld.com/article.php?story=20030124065007237