Я пытаюсь сравнить свой жесткий диск, то есть рассчитать его задержку (мс) и пропускную способность (МБ/с). Для этого я хочу измерить время выполнения функции f.write Python. Мне нужно записать ровно x байт в мои файлы. Я понимаю, что мне нужно открыть свой файл, используя
f = open(file_name, 'wb')
Тогда то, что я делаю, это
for i in range(blocksize)
f.write(b'\xff')
Однако результаты, которые я получаю для пропускной способности (МБ/с), слишком низкие. Задержка выглядит правильно. Итак, я пришел к выводу, что когда я делаю предыдущие строки, я фактически записываю в файл более одного байта, я пишу строку, содержащую один байт... Я знаю, что этот объект на самом деле не имеет размера в Python, но есть ли способ исправить эту проблему?
EDIT Хорошо, вот новый код, теперь результаты необъяснимо завышены! Ограничение на запись для моего диска должно быть 100 МБ/с, но у меня результаты в десять раз быстрее. Что не так ? импорт системного времени импорта
f = open("test.txt",'wb+')
def file_write_seq_access(blocksize):
chunk = b'\xff'*4000
for i in range(blocksize//4000):
f.write(chunk)
if __name__ == '__main__':
start_time = time.time()
file_write_seq_access(int(sys.argv[1]))
stop_time = time.time()
diff = stop_time - start_time
print diff, "s"
print (int(sys.argv[1])/diff),"B/s"