I have been experimenting with Polipo on Windows using MinGW_w64. I
found that the following enables some native IPv6 functions in
winsock2 on Windows 8 and above:
#define WINVER 0x0603

I have made a number of source code tweaks, but found that yuuboshi's
patches covered most of what I modified.

I continued to have problems with unlinking files in the cache and
pages from slashdot.org failing to load (among other sites). It does
appear that some changes to unlinking code needs to be made. I started
to work on building a list of files ready to be unlinked and searching
the disk cache, but have not worked out all of the code for it.
Specifically, the rewriteEntry code in diskcache.c does some things
that will not work on Windows. Rather than move the entry to a
temporary file and rebuild it, I changed the code to just destroy the
file and create a new entry. So far, this has not executed, so it must
not be a very common case.

I played with settings and have found the following to be much more
stable than defaults:
#define CHUNK_SIZE 16384
chunkHighMark = 536870912
objectHighMark = 262144
maxDiskEntries = 1000

Windows has a file handle restriction of 2048 handles per process
using standard C I/O functions. It seems that with 1000
maxDiskEntries, the cache does not have unlinking errors. Will it
still write files out if it has the ability to keep so many open?

Increasing CHUNK_SIZE helped slashdot.org load and eliminated most
errors about failing to read from the server. I still occasionally get
errors about not being able to write to the client. CHUNK_SIZE of
32768 or 65536 seemed to work a little better for loading some pages,
but caused crashes in other cases (suspecting overflows in
calculations).

I tried setting higher chunkHighMark settings, but there were places
in the code that would overflow if it was set too high.

Either way, I have been very happy for the past few days with these
configuration changes. IPv6 has been stable, though I did have some
issues listening on an IPv6 address. My needs are met with just
listening on IPv4.

I am happy with the memory usage. If some of the variables were
64-bit, I suspect that the chunkHighMark and CHUNK_SIZE limitations
may be eliminated. The only concern I have is that file handles seem
to not be released. With such a high maxDiskEntries, does the cache
keep the files open until the max value? It would seem to make sense
to close them after some amount of time. Regardless, it is working
well enough that I may not mess with it for now.

Regards,
Gabe Klyber

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Polipo-users mailing list
Polipo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/polipo-users

Reply via email to