import random import os import time import shutil import tempfile def benchmark(do_any): bench_start = time.time() do_any() return time.time() - bench_start class fiot(object): num_fiots = 0 def __init__(self, src_file_name, file_size, dest_file_name, aktion_secs): fiot.num_fiots += 1 self.src_file_name = src_file_name if src_file_name == "$TMP": self.src_file_name = tempfile.mktemp('.dat') self.file_size = file_size self.dest_file_name = dest_file_name self.aktion_secs = -1 pass def __del__(self): fiot.num_fiots -= 1 def do_generate(self): random.seed(0) randomdata = bytearray() for x in range(0, self.file_size): randomdata.append(random.randint(128,255)) open(self.src_file_name,"wb").write(randomdata) os.path.getsize(self.src_file_name) def do_copy(self): shutil.copy(self.src_file_name, self.dest_file_name) A = fiot('$TMP', 1024, '', -1) # Generate 1KB Datei A.dest_file_name = A.src_file_name + ".copy" print 'Datei ', A.src_file_name print 'Size in Bytes', A.file_size A.aktion_secs = benchmark(A.do_generate) print 'Generiert in ',A.aktion_secs,' Sekunden' A.aktion_secs = benchmark(A.do_copy) print 'Kopiert in ',A.aktion_secs,' Sekunden auf ',A.dest_file_name print 'Durchsatz in KiBp/s: ', A.file_size/A.aktion_secs/1024 print 'Durchsatz in Mbytes/s: ', A.file_size/A.aktion_secs/1024**2 B = fiot(A.src_file_name, -1, 'c:\\temp\\test.copy', -1) B.file_size=os.path.getsize(B.src_file_name) print 'Datei ', B.src_file_name print 'Size in Bytes', B.file_size B.aktion_secs = benchmark(B.do_copy) print 'Kopiert in ',B.aktion_secs,' Sekunden auf ',B.dest_file_name print 'Durchsatz in KiBp/s: ', B.file_size/A.aktion_secs/1024 print 'Durchsatz in Mbytes/s: ', B.file_size/A.aktion_secs/1024**2 #os.unlink(A.src_file_name) #os.unlink(B.src_file_name) #os.unlink(B.dest_file_name)