• Please review our updated Terms and Rules here

Best values for "BUFFERS="

Gustavo

Member
Joined
Aug 20, 2022
Messages
21
I´ve been benchmarking various values for BUFFERS=x,y in CONFIG.SYS, and found very surprising results.

The test consists of starting Indiana Jones 3, the adventure game, from floppy (GOTEK emulator) until the title music plays. Using DOS 6.22 with 10 MHZ NEC V20.

Check out the times:

BUFFERS=99,8 ... 34 seconds
BUFFERS=40,8 ... 34 seconds
BUFFERS=10,8 ... 34 seconds
BUFFERS=10,4 ... 38 seconds
BUFFERS=8,8 ... 39 seconds
BUFFERS=1,8 ... 55 seconds
BUFFERS=40,0 ... 62 seconds
no BUFFERS line in CONFIG.SYS ... 60 seconds
BUFFERS=0,8 ... ERROR (minimum value is 1)
BUFFERS=10,9 ... ERROR (maximum value is 8)

The fist parameter is the buffer size. The second parameter is the read-ahead size.

Conclusion:
BUFFERS size larger than 10 is just memory wasting.
READ-AHEAD is the most importante value. The maximum value of 8 is the most efficient.
BUFFERS=10,8 is the the best value for this specific case.
 
That's very interesting. Back in the days I never bothered using buffers or files in my config.sys. I might need to have a play around with this on a machine I have lying around.

Thanks for sharing :)
 
Something I just thought of is I wonder what effect it will have on faster pcs (386/486)? Might bust out a 386dx33 and report back!
 
BUFFERS=10,8 is the the best value for this specific case.
That is the most important conclusion. Using any other software will give you different results.

On a 386, it's always better to just load smartdrv instead (with write cache off).
 
Using any other software will give you different results.
Will check other situations. Stunts is particularly slow to load on an XT machine.

Smartdrv is great, but breaks some software. Would you test smartdrv with BUFFERS=10,8 againt smartdrv without BUFFERS line?
 
Now, a small trial with STUNTS. I´ve got different results. I think Timo was correct.

BUFFERS=99,8 51 seconds
BUFFERS=40,8 50 seconds
BUFFERS=32,8 50 seconds
BUFFERS=30,8 76 seconds
BUFFERS=20,8 118 seconds
BUFFERS=10,8 135 seconds

The golden number was 32, this time, maybe because it is multiple of the read-ahead value.

Thanks Timo, for the tip. Will stick with BUFFERS=32,8 as a good compromise beetween speed and memory.
 
IBM's PC DOS doesn't have the secondary buffer cache option. If you have 640K of RAM, the default is BUFFERS=15.

And maybe it's wrong, but I heard that you should set BUFFERS to no less than your hard drive's number of sectors per track, so that it can load an entire track into the buffers. For example, with an MFM hard drive with 17 sectors per track, use a minimum of BUFFERS=17.
 
IBM's PC DOS doesn't have the secondary buffer cache option. If you have 640K of RAM, the default is BUFFERS=15.

And maybe it's wrong, but I heard that you should set BUFFERS to no less than your hard drive's number of sectors per track, so that it can load an entire track into the buffers. For example, with an MFM hard drive with 17 sectors per track, use a minimum of BUFFERS=17.
With the GOTEK drive emulator the LCD displays the current track the drive is reading. With a low BUFFERS value, the head seeks back and forth, maybe reading the FAT or the directory, then the file contents.
 
I remember MS Works 3.0 would not allow installation unless you setup your config.sys and autoexec in a rather specific way which became irritating in Windows 9x
 
The optimal BUFFERS setting depends on the underlying storage subsystem. Different numbers will be appropriate for different devices, ie. MFM, IDE, flash, floppy disks, etc.

I've standardized on 10 as a reasonable point across systems, although for floppy-only systems, I set it to 2 * number of sectors per track, so that the entire track is "cached" (it's not really a cache) which can help with FAT/dir operations. For example, a 360K disk is T40, S9, H2, so I set it to 18. (Each BUFFER is 512 bytes, and a floppy disk sector is also 512 bytes.)

This thread has motivated me to do a similar test with my 4.77 MHz 8088 XT + ADP50 + compactflash device. I'm curious how well my "just start with 10" advice holds up.
 
The optimal BUFFERS setting depends on the underlying storage subsystem. Different numbers will be appropriate for different devices, ie. MFM, IDE, flash, floppy disks, etc.

I've standardized on 10 as a reasonable point across systems, although for floppy-only systems, I set it to 2 * number of sectors per track, so that the entire track is "cached" (it's not really a cache) which can help with FAT/dir operations. For example, a 360K disk is T40, S9, H2, so I set it to 18. (Each BUFFER is 512 bytes, and a floppy disk sector is also 512 bytes.)

This thread has motivated me to do a similar test with my 4.77 MHz 8088 XT + ADP50 + compactflash device. I'm curious how well my "just start with 10" advice holds up.
please, share the results with us
 
please, share the results with us
Well, I tried BUFFERS=8, 16, and 32 in PC DOS 7, and there was no real change between all of them, likely because I'm using a compact flash card as a hard drive, and my CPU was a 4.77 MHz 8088. I ended up setting it to 18, ie. just enough buffers to buffer a single double-sided track of a 5.25" DSDD 360K disk.
 
Back
Top