[issue17440] Some IO related problems on x86 windows

Gurmeet Singh report at bugs.python.org
Sun Mar 17 17:02:19 CET 2013


Gurmeet Singh added the comment:

Thanks for letting me know about the optimization. 

I trusted you that the system call is made once, though I looked up code to see if size of the read in buffer is being passed to the C routine. I should apologize though for raising this issue - since it is incorrect.

But, I think you would be interested (out of CURIOSITY) in findings from the last experiment that I did to understand this issue:

1 >>> import io
2 >>> fl = io.FileIO('c:/temp9/Capability/Analyzing Data.mp4', 'rb')
3 >>> barr = bytearray(70934549)
4 >>> barr2= bytearray(70934549)
5 >>> id(barr)
29140440
6 >>> id(barr2)
26433560
7 >>> fl.readinto(barr)
70934549
8 >>> barr2 = barr[:]
9 >>> fl.close()
10 >>> fl = io.FileIO('c:/temp9/Capability/Analyzing Data.mp4', 'rb')
11 >>> barrt = bytearray(1)
12 >>> id(barrt)
34022512
13 >>> fl.readinto(barrt)
1
14 >>> fl.close()
>>>
 
The time of line 7 was much greater than line 13. It was also greater than 8 (but not that great as of 11). But I cannot say for sure that the time for line 13 plus line 8 is equal to or lesser than 7 - it looks lesser but needs more precise testing to say anything further.
 
I tried to reason the situation as follows (for this I looked up the hyperlink that you gave). I feel that the underlying system call takes the size argument - so I guess that large value suggests the C compiler to make ask the disk subsystem to read up the longer data - hence it takes the time since disk access is slower.

Thanks for your time. Sorry for the incorrect issue.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue17440>
_______________________________________


More information about the Python-bugs-list mailing list