DevMark  -  A device transfer-rate calculator

by Tony Howat

DevMark allows you to find the read and (optionally) write transfer-rate on any RISC OS filing system.

DevMark works at a sufficiently high level for it to work properly with all RISC OS filing systems, which is an obvious advantage as it allows you to compare filing systems regardless of their natures. The program also accesses devices in the same way as any other program would, with no device-specific tweaks.

Using DevMark
The program can be run from the RISC User menu system or by double-clicking on its icon in a filer window. An icon will appear on the icon bar. To test a device, you should find a file of a size as close to the amount of free memory you have as possible (bearing in mind that DevMark always leaves 32K free). Drag it to the DevMark icon on the icon bar. A window will appear which allows you to set up the write test. The option button labelled Write test should be highlighted if you wish to test this aspect of a device's performance. When this is highlighted, the Write test size control will be accessible. This defaults to a file of the same size as the read file, which is the recommended setting. You can change the write size using the up and down adjuster arrows which increment and decrement the file-size by 256K (a quarter of a megabyte). The setting with the same size as the read file replaces zero in the range (the step below 0.25Mb). You must ensure that if you are going to do a write test that there is enough space on the device for it, and that you can write to the device.

The tests will begin when you click OK. When they have finished, a window will appear detailing the transfer rates. You can close the window or, using its menu, you can recalculate the figures or recalculate and average them. You can also save a text file containing the result.

Interpreting DevMark's results
In order to get the most accurate results, you should know how DevMark goes about calculating transfer rates.

To test the read-speed of a device, DevMark reads the size of the file which was dragged to the icon bar and then allocates a block of memory of the same size, or as close to it as possible. A centi-second timer is started, and DevMark then fills this memory with data from the file. If the whole file has not been read, then DevMark fills the buffer again from where it left off until all the file has been read; then the timer is stopped.

To test the write-speed, DevMark allocates a block of memory of the same size or as close as possible to the size specified by the user. The timer is started, and the contents of this memory is then saved to a file with a random name in the same directory as the read file (this is important if you do not have access to all the disc; for example, under NFS or using a locked Risc PC). If the saved block was not as large as the specified amount, another block (or partial block) is saved; then the timer is stopped.

There is a delay associated with all block operations (in both read and write tests) as the device is informed of what it has to do and it seeks the appropriate part of the medium. This delay will affect transfer rate results, and so to minimise this you should read a file of a size slightly smaller than the amount of free memory you have. The same recommendation applies to the write test size. If you are doing both read and write tests, it is best to use a write test size identical to the length of the read file in order to ensure that seek times average out evenly.

It is worth remembering that the results DevMark gives are estimates. Don't try suing manufacturers because your drive or controller doesn't appear to perform as you were told. You'll need far more solid evidence!

Thanks are due to Ben Summers for help, testing and suggestions, and to David Norris for proof-reading.

Author:	Tony Howat
		thowat@xargle.demon.co.uk

Copyright  RISC User 1995