andypat
asked on
CD-Rom Benchmarking
Could someone please tell me how to benchmark CDRom drives or possibly send me a snippet of example code? I'm trying to determine the speed of a drive, eg. 2x, 4x, 8x etc.
Well, I have a suggestion. It might not be what you're looking for, but try this:
Get the current time, somehow, just make sure that it has precision into the milliseconds.
Open a file known to exist on the cd-rom. Perhaps copy it to the hard drive in a temporary directory.
Get the current time again. Subtract this time from the original, then you'll have the amount of time that it took to complete the copy.
I'm not sure how to actually implement any of that in c/c++ at this time, but if you do, that should provide the basic framework you need.
Get the current time, somehow, just make sure that it has precision into the milliseconds.
Open a file known to exist on the cd-rom. Perhaps copy it to the hard drive in a temporary directory.
Get the current time again. Subtract this time from the original, then you'll have the amount of time that it took to complete the copy.
I'm not sure how to actually implement any of that in c/c++ at this time, but if you do, that should provide the basic framework you need.
ASKER
Edited text of question
Oh, that sheds a whole new light on things. Sorry, I can't help it all for that one.
NT, 95 or both?
Suggestion:
1. Get timestamp.
2. Read n outermost tracks of the CD.
3. Get timestamp.
4. Read m innermost tracks of the CD.
5. Get timestamp.
Now you have two differences which let you approximate (because of various overheads) the max and min transfer rate of the CD.
Tell me the OS and I may have more info.
1. Get timestamp.
2. Read n outermost tracks of the CD.
3. Get timestamp.
4. Read m innermost tracks of the CD.
5. Get timestamp.
Now you have two differences which let you approximate (because of various overheads) the max and min transfer rate of the CD.
Tell me the OS and I may have more info.
How do you read one track at a time though?
Depends on the OS.
On NT, you can use CreateFile() and DeviceIoControl() to access the CDROM directly. See MS KB article Q138434.
On DOS, you can use the MSCDEX driver.
On Win95, this is a pain. See MS KB article Q137813.
On NT, you can use CreateFile() and DeviceIoControl() to access the CDROM directly. See MS KB article Q138434.
On DOS, you can use the MSCDEX driver.
On Win95, this is a pain. See MS KB article Q137813.
ASKER
I'm trying to do this on NT, 95 & 98.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Any specific reason for the low grade?
ASKER
Sorry alexo, I'd had a bad day! I really appreciate your feedback. Thanks again!
ASKER
arpatterson@hotmail.com
andypat@lineone.net