Advertisement
Guest User

compare (thread)

a guest
Nov 18th, 2012
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.86 KB | None | 0 0
  1. from time import time
  2. import concurrent.futures
  3.  
  4. # Initial params
  5. piece_size = 16 # KB
  6. # cores in system
  7. multiplier = 4
  8. errors = 0
  9.  
  10. starttime = time()
  11.  
  12. # 2 equal by size, but different by content files
  13. file1 = open('etalon.mkv', 'rb')
  14. file2 = open('startplus.mkv', 'rb')
  15.  
  16. # get byte piece of 2 files, and compare them
  17. def check(r1, r2, i):
  18.     global errors
  19.     if r1[i:i + piece_size] != r2[i:i + piece_size]:
  20.         errors += 1
  21.     return
  22.  
  23. if __name__ == '__main__':
  24.     r1 = file1.read(piece_size * multiplier)
  25.     r2 = file2.read(piece_size * multiplier)
  26.    
  27.     while r1:
  28.         with concurrent.futures.ThreadPoolExecutor(max_workers=4) as e:
  29.             for i in range(0, piece_size * multiplier, piece_size):
  30.                 e.submit(check, r1,r2,i)  
  31.         r1 = file1.read(piece_size)
  32.         r2 = file2.read(piece_size)
  33.    
  34.     print('errors:', errors)
  35.     print('Running time: ', time() - starttime)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement