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 <rep...@bugs.python.org>
<http://bugs.python.org/issue17440>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to