Catalin Iacob added the comment:

I tried Serhiy's suggestion in msg174934, see attached 
attempt-fseek-seek_cur.patch updated to current default. It makes no difference 
relative to the default branch for my test, dummy reads still work 
better on Windows.

This makes sense if you follow the CRT's implementation, fseek calls 
_fseek_nolock which always calls _flush, regardless whether SEEK_CUR is used or 
not. This is the case with both VS2008 and VS2010. So this patch is a 
workaround for poor fseek performance in Microsoft's CRT, it doesn't cause 
performance issues on Linux but saves quite some milliseconds of startup time 
so I think it's worth the tradeoff.

I'll also upload zipimport_speedup-v3.patch updated to apply to current default 
and with error handling for failing freads since the fseeks that the patch 
replaces have gained error handling on the default branch in the mean time. The 
timings remain the same on my Windows machine: around 30ms for default branch, 
around 15ms with patch.

Added file:

Python tracker <>
Python-bugs-list mailing list

Reply via email to