home *** CD-ROM | disk | FTP | other *** search
-
- DiskSpeed v3.0
- by
- Michael Sinz
-
- Copyright (c) 1989 by MKSoft Development
-
-
- Yes, this is yet another disk speed testing program, but with a few
- differences. It was designed to give the most accurate results of the
- true disk performance in the system. For this reason many of
- DiskSpeed's results may look either lower or higher than current disk
- performance tests.
-
- This program was thrown together in a few hours because I needed more
- accurate and consistent results for disk performance as seen from the
- application's standpoint. This program has now served its purpose and
- I am now giving it to the rest of the Amiga world to play with as long
- as all of the files remain together in unmodified form. (That is, the
- files DiskSpeed, DiskSpeed.info, DiskSpeed.c, DiskSpeedWindow.c,
- DiskSpeedWindow.h, MakeBoxes.c, MakeBoxes.h, StandardGadgets.c,
- StandardGadgets.h, RenderInfo.c, RenderInfo.h, DiskSpeed.doc, and
- MakeFile)
-
- Version 2.0 of this program added a few features and cleaned up the
- user interface. I hope you like this...
-
- Version 3.0 of this program added the performance stress and cleaned up
- some parts of the older code. (Fix to RenderInfo.c)
-
- ************************************************************************
-
- Reading legal mush can turn your brain into guacamole!
-
- So here is some of that legal mush:
-
- Permission is hereby granted to distribute this program's source,
- executable, and documentation for non-commercial purposes, so long as
- the copyright notices are not removed from the sources, executable or
- documentation. This program may not be distributed for a profit
- without the express written consent of the author Michael Sinz.
-
- This program is not in the public domain.
-
- Fred Fish is expressly granted permission to distribute this program's
- source and executable as part of the "Fred Fish freely redistributable
- Amiga software library."
-
- Permission is expressly granted for this program and it's source to be
- distributed as part of the Amicus Amiga software disks, and the First
- Amiga User Group's Hot Mix disks.
-
- ************************************************************************
-
- ------------------------------------------------------------------------
-
- User's Guide
-
- DiskSpeed is very easy to operate. Just start the program by either
- clicking on its icon or typing its name in from the CLI. DiskSpeed
- will open another window with the "Drive:" string gadget active. Enter
- the drive name and select "Test" from the menu and DiskSpeed will go
- and test that device. The results will be displayed as they are
- generated.
-
- After the device has been tested, the results may be saved to the
- DiskSpeed.Results file in the current directory or printed on the
- printer. When the results are saved in DiskSpeed.Results, they are
- appended to the end of that file in order to make it possible to create
- a single file containing the results of all of your devices.
-
- ------------------------------------------------------------------------
-
- How Does DiskSpeed Work?
-
- DiskSpeed is rather simple. It uses the Amiga's Timer.device to get
- and calculate the time differences between the start and end of each
- test section. This timer is locked to the VBlank frequency and thus is
- rather stable and accurate. (Resolution is ~0.02 seconds so the
- accuracy is +/- ~0.04 seconds. This should be rather good as most
- operations take well over 2 seconds...)
-
- The tests work as follows:
-
- DiskSpeed will first create a temporary directory on the selected
- device. Note that the device will have to be write enabled and will
- need around 600 free blocks. (Depends on the filing system) All tests
- are done in this directory and all files and this directory are removed
- when the test is completed. It is for this reason that some parts of
- the tests can not be stopped as there is a large amount of cleanup
- after them.
-
- Gadgets in DiskSpeed 2.0------------------------------------------------
-
- Device Gadget: This is the device that is to be tested...
-
- Comment Gadget: This is the comment that will be written out with
- the results of the test. (79 characters...)
-
- Test Intensity: This selects the test intensity. Due to the timer
- on the Amiga, you will get more accurate results
- with a higher test intensity. However, when testing
- slow drives or floppies, this may not be a good
- thing as it would take too long. The settings
- select the multipliers that will be used during testing.
- This affects the number of times the large file
- is read for the Create/Write/Read tests.
-
- Low settings on a FAST device will give inaccurate
- values. High settings on a slow device will take
- a long time to complete.
-
- Perfomance
- Stress: These two settings turn on the stress code for either
- DMA or CPU performance.
-
- The DMA stress will cause a very large COPPER list to
- be generated that will eat up as many CHIP/DMA cycles
- as it can. It leaves a few at VBlank, as to simulate
- a relatively "standard" DMA load as would be seen in
- heavy video overscan. Note that this is not 100% the
- same as video overscan, however, it is within +/- 5%
- of the DMA usage. Also note that this depends on your
- software's useage of overscan too.
-
- The CPU stress will make a simple task that just sits
- there copying strings from one place to another. This
- is to simulate a heavy multi-tasking load on the system
- and what that does to disk performance. Note that since
- this is a CPU stress, this causes the AmigaDOS routines
- to also slow down a bit. This simulates much the same
- enviroment as a system that is doing a RAY-Trace or
- other 3D type of generation while your system is doing
- disk I/O in other operations. (Many people run the
- ray-tracers in the background while they do other work)
-
- Note that these two stress settings can be use together
- to stress *BOTH* CPU and DMA.
-
- File Create Test: ------------------------------------------------
-
- In this test, the program generates some unique file names. As each of
- the names are generated, the program Open()s the file as MODE_NEWFILE
- and the Close()s it. This is to time the overhead in creating a file.
- All of the files created are 0-bytes in length as no data is written to
- these files. These same files will be used for the Directory Scan,
- File Open/Close, and File Delete tests.
-
- File Open/Close Test: ------------------------------------------------
-
- In this test, the program opens and then closes each of the files that
- were created in the test above. This shows the overhead for these
- calls...
-
- Directory Scan Test: ------------------------------------------------
-
- In this test, the directory of files created in the File Create test is
- scanned three times to see how quickly the system can walk directories.
-
- File Delete Test: ------------------------------------------------
-
- This test times the deletion of the files created in the File Create
- test. This shows the overhead in the deletion of a file from the
- filing system/device. After this point, the program once again checks
- for the close gadget as it would be safe to exit here.
-
- Seek And Read Test: ------------------------------------------------
-
- For this test, a 256K-byte file was created. The program seeks to the
- start of the file and reads 64 bytes; then it seeks to the end of the
- file - 128 bytes and then reads 64 bytes; then it seeks to the middle
- of the file and reads 64 bytes. It uses each of the three seeking
- methods (OFFSET_BEGINNING, OFFSET_END, OFFSET_CURRENT) to do this. This
- activity is repeated 150 times, for a total of 450 seek/reads. The
- timings from this test will show both disk seek performance and
- filesystem performance in the calculation of seek locations and actual
- block values.
-
- Raw Write/Create Test: ------------------------------------------------
-
- For this test, a 256K-byte file is created. The program recreates this
- file for each pass, thus showing the speed of laying down new blocks on
- the drive. The data is written in n-byte increments. (In the current
- version of DiskSpeed, this is 512, 4096, 32768, and 262144 byte
- chunks.) The complete file is written multiple times to give a more
- complete view of actual read speeds. This test will mainly show the
- raw data transfer rate of the machine plus the overhead of the
- operating system calls and device driver calls. If the disk was very
- fragmented, it would also show some signs of how the seek time is
- causing performance to drop due to the fragmentation.
-
- Raw Write Test: ------------------------------------------------
-
- For this test, a 256K-byte file was created. The program seeks to the
- start of the file and writes it in n-byte increments. (In the current
- version of DiskSpeed, this is 512, 4096, 32768, 262144 byte chunks.)
- The complete file is written multiple times to give a more complete
- view of actual write speeds. This test will mainly show the raw data
- transfer rate of the machine plus the overhead of the operating system
- calls and device driver calls. If the disk was very fragmented, it
- would also show some signs of how the seek time is causing performance
- to drop due to the fragmentation.
-
- Raw Read Test: ------------------------------------------------
-
- For this test, a 256K-byte file was created. The program seeks to the
- start of the file and reads it in n-byte increments. (In the current
- version of DiskSpeed, this is 512, 4096, 32768, and 262144 byte
- chunks.) The complete file is read multiple times to give a more
- complete view of actual read speeds. This test will mainly show the
- raw data transfer rate of the machine plus the overhead of the
- operating system calls and device driver calls. If the disk was very
- fragmented, it would also show some signs of how the seek time is
- causing performance to drop due to the fragmentation.
-