urllib2 performance on windows, usb connection
dq
dq at gmail.com
Fri Feb 6 16:09:22 EST 2009
Martin v. Löwis wrote:
>> So does anyone know what the deal is with this? Why is the same code so
>> much slower on Windows? Hope someone can tell me before a holy war
>> erupts :-)
>
> Only the holy war can give an answer here. It certainly has *nothing* to
> do with Python; Python calls the operating system functions to read from
> the network and write to the disk almost directly. So it must be the
> operating system itself that slows it down.
>
> To investigate further, you might drop the write operating, and measure
> only source.read(). If that is slower, then, for some reason, the
> network speed is bad on Windows. Maybe you have the network interfaces
> misconfigured? Maybe you are using wireless on Windows, but cable on
> Linux? Maybe you have some network filtering software running on
> Windows? Maybe it's just that Windows sucks?-)
>
> If the network read speed is fine, but writing slows down, I ask the
> same questions. Perhaps you have some virus scanner installed that
> filters all write operations? Maybe Windows sucks?
>
> Regards,
> Martin
>
Thanks for the ideas, Martin. I ran a couple of experiments to find the
culprit, by downloading the same 20 MB file from the same fast server.
I compared:
1. DL to HD vs USB iPod.
2. AV on-access protection on vs. off
3. "source. read()" only vs. "file.write( source.read() )"
The culprit is definitely the write speed on the iPod. That is,
everything runs plenty fast (~1 MB/s down) as long as I'm not writing
directly to the iPod. This is kind of odd, because if I copy the file
over from the HD to the iPod using windows (drag-n-drop), it takes about
a second or two, so about 10 MB/s.
So the problem is definitely partially Windows, but it also seems that
Python's file.write() function is not without blame. It's the
combination of Windows, iPod and Python's data stream that is slowing me
down.
I'm not really sure what I can do about this. I'll experiment a little
more and see if there's any way around this bottleneck. If anyone has
run into a problem like this, I'd love to hear about it...
thanks again,
--danny
More information about the Python-list
mailing list