Advertisement
anacrolix

python read perf

Nov 25th, 2011
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.73 KB | None | 0 0
  1. import tempfile, os
  2. f = tempfile.TemporaryFile()
  3. f.write(os.urandom(10000000))
  4. f.flush()
  5. BUFSIZE = 100000
  6. def read():
  7.     f.seek(0)
  8.     s = b''
  9.     while True:
  10.         b = f.read(BUFSIZE)
  11.         if not b:
  12.             break
  13.         s += b
  14.     return s
  15. def bytearray_read():
  16.     f.seek(0)
  17.     s = bytearray()
  18.     while True:
  19.         b = f.read(BUFSIZE)
  20.         if not b:
  21.             break
  22.         s += b
  23.     return s
  24. def readinto():
  25.     f.seek(0)
  26.     s = bytearray(os.fstat(f.fileno()).st_size)
  27.     o = 0
  28.     while True:
  29.         b = f.readinto(memoryview(s)[o:o+BUFSIZE])
  30.         if not b:
  31.             break
  32.         o += b
  33.     return s
  34. if __name__ == '__main__':
  35.     assert read() == bytearray_read() == readinto()
  36.  
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement