I originally started work on this project to support more than 2G of storage for the database tests. At the time I was testing hard drive performance of some Sun servers with 8G of RAM, so a 2G test file (the maximum size for 32bit code) wasn't enough to get valid results. To do this I wrote a C++ class to encapsulate the file IO and support storage in a number of 1G files with all access being through an index to the 8K block used (giving a potential for storage of 2^44 bytes of data - 16T).
Then I started playing with the Reiser file system and found that Bonnie didn't run any faster on ReiserFS than on any other file system. So I decided that it needed to test the creation of large numbers of files in a directory to be able to show how file systems such as ReiserFS outperform older file systems such as Ext2 and UFS.
After it became apparent that Tim Bray and I will probably never agree on the relative merits of C vs C++ Tim suggested that I release my code independantly under the name Bonnie++.
After I started releasing test versions which then started to become popular I began added some features based on code contributions (such as synchronization of multiple bonnie++ processes) and on request (blocking mode).

Main Bonnie++ page.

Copyright © 2000 Russell Coker, may be distributed freely.