views:

96

answers:

2

I am doing some performance tests for the amount of time it takes to write X amount of files to a specified location. I will be comparing write speeds: 1) with a custom file system driver installed and loaded, and 2) with the file system driver not installed nor loaded.

I want to test this on various machines with various OS's. Also, I want to allow the test to be performed anytime and have results be used as a benchmark so I can compare new results for any new development of the file system driver.

What are the factors of write speed when writing a bunch of files to a hard disk?

Edit: I have some simple code that uses rdbuf() and outputs it to an output file stream. I am reading in binary data from a base file and writing that same file out but with a different filename. I will be creating anywhere from 100 to 1000 files at a time. The files are about 800KB each.

The main thing I want to know is the impact of comparing results across different platforms and disks. The results I have gathered are in writes/sec and I get the difference for before and after the filesystem driver is in place.

+1  A: 

A lot:

  • concurrency (rivaling reads/writes, rivaling processes)
  • medium (flash, disk)
  • specs (flash: trimming, disk: rotation + latency, cache)
  • file-size (small files with big metadata-overhead versus endless stream of one big file)
  • file-system (raw fs versus journalling/shadowing fs)

Have your pick and try to control all these factors :)

Leonidas
A: 

One of the biggest performance factors will be finding a single contiguous block to write the whole file into. The file-system (ReiserFS/NTFS/ext3 etc) and disk's capacity, amount of free space and fragmentation will all be key factors.

meagar