Forum unknown
· Programming
#Smart Ctrl-A-A
11 messages in this thread
What's needed is a WBench that lets you do other things while the directory
is being read, like my filename requester. Sigh. Anyhow, within a few
months there will be caching soloutions to the directory speed problems –
the problem now is that "addbuffers" works at a sector level, and doesn't
know a sector is in memory that has directory info in the trackdisk buffer.
So it does a seek, reads another sector, does a seek back to the same track
again… Anyhow, a bit of code on top of trackdisk.device will solve all
woes for anybody with enough ram to keep a few tracks in memory.
Great, Charlie!! I was wondering if a read-cache of the directory blocks
wouldn't be the simplest solution for both 512K and > 512K users. You
could just turn if off/on based on your available mem. BTW, talked to Rob
Peck about child process instability, and he says that Neil Katin told him
to do a Forbid() just before exiting the child process. He didn't say why,
but I suspect it's to keep the child from being UnLoadSeg'd before it's
fully unloaded. Thanks for your help..
There's lots of possibilities regarding caching, I don't know the DOS
handlers well enough to guess how easy any in particular would be. Caching
directory blocks is likely to be among the best, in addition to detecting
directory blocks in tracks which are otherwise flushed by the next seek.
There's lots of possibilities regarding caching, I don't know the DOS
handlers well enough to guess how easy any in particular would be. Caching
directory blocks is likely to be among the best, in addition to detecting
directory blocks in tracks which are otherwise flushed by the next seek.
Great, Charlie!! I was wondering if a read-cache of the directory blocks
wouldn't be the simplest solution for both 512K and > 512K users. You
could just turn if off/on based on your available mem. BTW, talked to Rob
Peck about child process instability, and he says that Neil Katin told him
to do a Forbid() just before exiting the child process. He didn't say why,
but I suspect it's to keep the child from being UnLoadSeg'd before it's
fully unloaded. Thanks for your help..
Charlie,
Since a directory never takes more than one (1) sector, the caching doesn't
really have to do a lot of work.
Each directory entry is only one sector, the problem is that DOS doesn't
understand tracks so it throws away 14 out of 15 sectors it's got ripe for
picking.
Charlie,
AmigaDOS only puts 11 sectors per track, but I catch your drift…10 out of
11.
Charlie,
AmigaDOS only puts 11 sectors per track, but I catch your drift…10 out of
11.
Each directory entry is only one sector, the problem is that DOS doesn't
understand tracks so it throws away 14 out of 15 sectors it's got ripe for
picking.
Charlie,
Since a directory never takes more than one (1) sector, the caching doesn't
really have to do a lot of work.