alfaunits
07-24-2006, 03:56 AM
I have spent considerable time trying to figure if my EX8350 can perform at least as well as the on-board SATA controller.
To that extent, I have created a C console application that performs 3 most common tasks (these are real-world ways of accessing files, not synthetic or direct disk access benchamarks). They are more down-to-Earth for what a normal user would get.
Attached is C code (for those who wish to check exaclty what is done or want to recompile), and the compiled version of the program.
I would appreciate posting some number you achieve on your SATA/SCSI RAIDs, preferably 4 disks or more.
FYI, my EX8350 (x4 PCI-E) takes ~ 7 secs for the first test (which I am most concerned with), wherewas the on-board nVidia RAID takes only 1.3 secs (actual write speeds of > 350 MByte/s)
The code performs the following reads/writes:
1. UNBUFFERED TEST (no file cache, however, the controller or the disk itself can cache the data)
1.1. Writes in 64K chunks - the typical way Windows does file caching (data is cached, and written in 64K chunks when the lazy writer decides)
1.2. Writes in 1M chunks
1.3. Writes in 16M chunks. These two are used by specialized software, not much use for everyday or even power users. It does give raw numbers as to what the disk can achieve maximum.
1.4/5/6 Reads in 64K/1M/16M. Similar to above just reads not writes. You may get quite low values for these tests, which will mean some component is caching the reads still. Considering a 512M test file is used, it cannot be the didks or the controller. I am working on this :D
2. WRITE_THROUGH test. The writes are WRITE_THOUGH, reads are cached. (Writes should give the same performance as test 1, but WILL differ VASTLY on some controllers).
2.1-6. Same as test 1.1-6 only reads are cached, and will show how good the system cache manager works on your computer.
3. CACHED I/O test.
3.1-3 Tests writes in 64K/1M/16M chunks without flushing the data (flushes the data between the tests though to clear the timing burden).
3.4-6 Tests writes in 64K/1M/16M chunks with data flushing before shwoing the actual numbers (in tests 1-3, the time is calcualted before the data is flushed, in 4-6 after the data is flushed).
Results 4-6 are what you will get if your system is getting a heavy load without specialized software (e.g. games, huge office sheets etc.)
3.7-9 Same as 2.7-9 absolutely no difference. I made this just to make sure something is not missed.
To that extent, I have created a C console application that performs 3 most common tasks (these are real-world ways of accessing files, not synthetic or direct disk access benchamarks). They are more down-to-Earth for what a normal user would get.
Attached is C code (for those who wish to check exaclty what is done or want to recompile), and the compiled version of the program.
I would appreciate posting some number you achieve on your SATA/SCSI RAIDs, preferably 4 disks or more.
FYI, my EX8350 (x4 PCI-E) takes ~ 7 secs for the first test (which I am most concerned with), wherewas the on-board nVidia RAID takes only 1.3 secs (actual write speeds of > 350 MByte/s)
The code performs the following reads/writes:
1. UNBUFFERED TEST (no file cache, however, the controller or the disk itself can cache the data)
1.1. Writes in 64K chunks - the typical way Windows does file caching (data is cached, and written in 64K chunks when the lazy writer decides)
1.2. Writes in 1M chunks
1.3. Writes in 16M chunks. These two are used by specialized software, not much use for everyday or even power users. It does give raw numbers as to what the disk can achieve maximum.
1.4/5/6 Reads in 64K/1M/16M. Similar to above just reads not writes. You may get quite low values for these tests, which will mean some component is caching the reads still. Considering a 512M test file is used, it cannot be the didks or the controller. I am working on this :D
2. WRITE_THROUGH test. The writes are WRITE_THOUGH, reads are cached. (Writes should give the same performance as test 1, but WILL differ VASTLY on some controllers).
2.1-6. Same as test 1.1-6 only reads are cached, and will show how good the system cache manager works on your computer.
3. CACHED I/O test.
3.1-3 Tests writes in 64K/1M/16M chunks without flushing the data (flushes the data between the tests though to clear the timing burden).
3.4-6 Tests writes in 64K/1M/16M chunks with data flushing before shwoing the actual numbers (in tests 1-3, the time is calcualted before the data is flushed, in 4-6 after the data is flushed).
Results 4-6 are what you will get if your system is getting a heavy load without specialized software (e.g. games, huge office sheets etc.)
3.7-9 Same as 2.7-9 absolutely no difference. I made this just to make sure something is not missed.