I ran this for 1000 records first, then 10000 records. I've run it several times and it's generally about 2.5 seconds for 1000 of them, and of course about 25 or so for 10000.
The search times however remain constant at about 1 millisecond.
I'm attaching both pictures and putting the sample code here to see.
starttime as integer
endtime as integer
x as integer
#constant cnt = 10000
kfs create 1, "test.kfs", 6, 0, 0
set text font "Consolas"
set text size 24
print "Creating "; cnt; " keys"
starttime = timer()
for x = 1 to cnt
kfs add 1, str$(x), x
next x
endtime = timer()
print "Finished"
print "Created in "; (endtime - starttime) * .001; " seconds."
print "Now adding data amidst the junk..."
for x = cnt + 1 to cnt + 8
read k$
kfs add 1, k$, x
next x
restore
for x = 1 to 8
read k$
starttime = timer()
record = kfs find(1, k$)
endtime = timer()
print "Found "; k$; " in "; endtime - starttime; " milliseconds."
next x
data "Havok", "Steele", "Wolfe", "Coffee", "Bottle", "Dorian", "Sawyer", "Mina"
kfs close 1
`wait key
while inkey$()
endwhile