geos said:
thanks for response Bob.. yes, I thought about a .BAT file but in my
situation a) it would take me some time to learn how to write batch
files, and b) I would like to have a tool which tests reading/writing
to/from random generated sectors throughout the disk. I mean that some
areas could not be tested using the batch file (I may be wrong about it)
while using the tool that forces reading/writing to/from some areas
would be better for me.
I'm still looking on the Internet for such a tool, but "benchmarks,
benchmarks" everywhere
cheers,
geos
You could also use windows script host and write it in VBScript or
Javascript. Below is a script that I had written to overwrite all
free space on a disk (as a cheap disk erase utility). All it does is
create unlimited 10MB files in a loop. You could use this to fill a
good part of your disk with files. Then, write another script that
randomly chooses one of the files, opens it, reads it into memory, and
closes it, all in a loop. You can run multiple copies of the scripts.
Make the file sizes smaller or larger depending on what you want to
test.
Download the "Microsoft Windows Script 5.6 Documentation" from
http://msdn.microsoft.com/scripting/ for reference. If you know
programming, you can learn windows scripting very fast from the
documentation.
Here is the script:
erasefreespace.vbs
-----------------------------------------
Option Explicit
DIm objFSO, objDrive, objBlankFile
Dim NumberCreated, TotalRunTime
Dim MaxGB, S, E, CurrentGB, CurrentMB
Dim AverageSpeedMBPerSecond, TimeLeftSeconds
Dim str10MBString
Set objFSO = CreateObject("Scripting.FileSystemObject")
NumberCreated = 0
TotalRunTime = 0
str10MBString = String(10000000,"0")
Set objDrive =
objFSO.GetDrive(objFSO.GetDriveName(WScript.ScriptFullName))
MaxGB = Int((objDrive.TotalSize / (2 ^ 30))+1)
For CurrentGB = 0 To MaxGB
If Not objFSO.FolderExists("blanks"&CurrentGB) Then
objFSO.CreateFolder "blanks"&CurrentGB
End If
For CurrentMB = 0 To 100
If Not objFSO.FileExists("blanks"&CurrentGB & "\blank" &
CurrentMB & ".txt") Then
NumberCreated = NumberCreated + 1
S = Timer
Set objBlankFile = objFSO.CreateTextFile("blanks"&CurrentGB
& "\blank" & CurrentMB & ".txt", False, False)
objBlankFile.Write str10MBString
objBlankFile.Close
Set objBlankFile = Nothing
'objFSO.CopyFile "blank.txt", "blanks"&CurrentGB & "\blank"
& CurrentMB & ".txt"
E = Timer
TotalRunTime = TotalRunTime + (E - S)
If TotalRunTime <> 0 Then
AverageSpeedMBPerSecond = NumberCreated * 10 / TotalRunTime
TimeLeftSeconds = (MaxGB * 1000 /AverageSpeedMBPerSecond)
WScript.Echo "Wrote gigabyte " & CurrentGB & "." &
CurrentMB & " of " & MaxGB & ". Running at " &
Round(AverageSpeedMBPerSecond, 2) & " MB/s. Time left = " &
Round(TimeLeftSeconds/60,2) & " minutes."
End If
End If
Next
Next