Original software of September 2013 on Apple IIgs by Antoine VIGNAU and Olivier ZARDINI.




BenchmarkeD
"Get the best experience with modern storage devices!"

> What is BenchmarkeD?
      BenchmarkeD is a benchmark utility for the Apple IIgs. It allows you to calculate an average throughput in reading and writing files and sequential disk blocks of your ProDOS volumes.

      BenchmarkeD uses standard GS/OS routines to perform its tests.

      Download a ZIP archive with a 800K .PO image and two 32M .PO and .2mg images to perform your tests.

> Why BenchmarkeD?
      Until now, there were no such utilities for the Apple IIgs. Nowadays, disk devices are USB sticks or Compact Flash cards, physical devices such as hard disk drives or 3.5" drives are no longer used.

      It is time to determine the fastest device to get the best experience with modern storage devices.

> How to use?
      From the Finder, copy BenchmarkeD to the ProDOS volume you would like to test and launch it from there.

> How does it work?
      BenchmarkeD is a GS/OS text application which offers four features divided into two kinds of tests:

  • File tests
    • 1- Write speed
    • 2- Read speed
  • Disk tests
    • 3- Read with 64K buffer
    • 4- Read block-by-block

      Just press a number between 1 and 4 and let BenchmarkeD calculate the throughput for you. Note that a test can be stopped by pressing CTRL-C.

      From the main menu, press 'Q' or 'q' to quit the application.

> What is the protocol?
      The common protocol of the four options of BenchmarkeD is to calculate the throughput in KB/s (kilo bytes per second) by getting the time at the beginning of an action and at the end.

      The size of the file or of the volume (in KB) is divided by the number of seconds of the test to calculate the KB/s value.

> File tests
      To perform its file tests, BenchmarkeD either creates or reads files of the following size on your test volume: 512K, 1M, 2M, 4M, 8M and 16M (which is the limit of a file size under a ProDOS volume).

      The used filename is binary "File" suffixed with the file size and each pass writes or reads 64K of data.

      Write speed (option 1) tries to create files of different sizes starting from 512K to 16M. In case of I/O error or if the volume is full, the process is stopped. If your volume is full when writing a 1MB file, it is useless to test the writing speed of a 2MB file, isn't it?

      Prior to writing files, BenchmarkeD will remove the existing unlocked test files from your volume.

      Read speed (option 2) reads each of the existing test files by chunks of 64K. In case of I/O error, the process is stopped and the application goes to the next file test.

> Disk tests
      Read with 64K buffer (option 3) reads blocks by chunks of 64K (on a ProDOS partition of 512-byte blocks, each pass reads 128 blocks) until the end of the partition is reached.

      Read block-by-block (option 4) reads blocks one by one sequentially from the first to the last one of the partition.

> Can I share my results?
      Yes, sure, please provide us with detailed information of your Apple IIgs configuration (machine or emulator, ROM version, etc.) either:


      The spreadsheet is divided into two sheets: one for file tests, the second for disk tests. Dozens of tests were performed on different machines, at different speeds on various devices and formats (partition, .2mg, .PO)

      Feel free to add your own results!

> Current test results (excerpts, ROM 3 running at 2.8 MHz)

Write file average results
ControllerDisk driveThroughput (KB/s)
Apple SCSI High Speed DMAApple 250MB SCSI38
CFFA 3000 v3.1.2mg on Sandisk Cruzer 16GB22
CFFA 3000 v3.1.PO on Sandisk Cruzer 16GB30
CFFA 3000 v3.1.2mg on unbranded USB stick<1
CFFA 3000 v3.1.PO on unbranded USB stick<1
CFFA 3000 v3.1CF partition36
Read file average results
ControllerDisk driveThroughput (KB/s)
Apple SCSI High Speed DMAApple 250MB SCSI53
CFFA 3000 v3.1.2mg on Sandisk Cruzer 16GB60
CFFA 3000 v3.1.PO on Sandisk Cruzer 16GB62
CFFA 3000 v3.1.2mg on unbranded USB stick61
CFFA 3000 v3.1.PO on unbranded USB stick61
CFFA 3000 v3.1CF partition55
Read blocks with 64K buffer average results
ControllerDisk driveThroughput (KB/s)
Apple SCSI High Speed DMAApple 250MB SCSI79
CFFA 3000 v3.1.2mg on Sandisk Cruzer 16GB96
CFFA 3000 v3.1.PO on Sandisk Cruzer 16GB96
CFFA 3000 v3.1.2mg on unbranded USB stick95
CFFA 3000 v3.1.PO on unbranded USB stick95
CFFA 3000 v3.1CF partition96
Read block-by-block average results
ControllerDisk driveThroughput (KB/s)
Apple SCSI High Speed DMAApple 250MB SCSI35
CFFA 3000 v3.1.2mg on Sandisk Cruzer 16GB47
CFFA 3000 v3.1.PO on Sandisk Cruzer 16GB47
CFFA 3000 v3.1.2mg on unbranded USB stick42
CFFA 3000 v3.1.PO on unbranded USB stick42
CFFA 3000 v3.1CF partition44


> OK... And, so what?
      See BenchmarkeD as a useful utility to determine the best USB stick for your CFFA card, or use the fastest device to write data for direct-to-disk sound routines.

      From our different tests:

  • CFFA 3000 users should upgrade to firmware 3.1: read speed is enhanced!
  • CFFA 3000 users should use a powerful USB stick or will suffer from low writing speeds
  • Prefer .PO disk images over .2mg, results are better despite a lack of meta-data support
  • Emulators do not emulate standard reading and writing speeds but... who cares?
      During our first tests, writing onto a unbranded USB stick resulted in a throughput of less than 1 KB/s. Such a result is unacceptable if you want to perform numerous copies to that kind of device.

> What else can you say?
      BenchmarkeD uses standard GS/OS calls. That means that there are several layers between a call from the application to the data being provided.

      Nothing would beat optimized disk calls (eg. Locksmith Fast Disk Backup vs Apple's RWTS) therefore using the GS/OS layer adds a loss of KB/s but offers the advantage of stability, compatibility and easy comparison between devices.

> Are there limits?
      Benchmarked requires GS/OS 4.0.2 (System 6.0.1) to operate, it uses toolbox calls from that relase.

      The second limit is that disk tests work with ProDOS volumes only, the disk tests check the application is launched from ProDOS.

      The third one is that disk tests perform sequential blocks reads only. One useful feature would be to add random blocks read routines.

> Can BenchmarkeD be more precise?
      BenchmarkeD works at the second level and does not deal with microseconds. That is because interrupts are stopped on some devices (eg. Apple 3.5") therefore the calculated throughput would not be correct if interrupts were used.

> Is the source code available?
      Yes, it is located on the distribution disk at the same level as the application. BenchmarkeD is written in assembly language under Merlin 16+.

> Are there incompatibilities?
      One was known at the time of release. When you quit BenchmarkeD and return to the Finder, WinFlate crashes. No digging was done to understand why!

> Greetings
      Many thanks go to:

  • Dave Lyons
  • David Schmidt
  • Rich Dreher






Download:



ZIP archive of all formats (V1, 42MB)

Program and source code (V1, 800K)