[physfs] question about PHYSFS_read and PHYSFS_write
Edward Rudd
eddie at omegaware.com
Fri May 2 13:41:05 EDT 2003
buffering api???
I'm running the 0.1.7 version.. wait I just upgaded to 0.1.8.. Ahh
buffering API!!..
Nice!!
wonder how I missed that in the mailing list..
I currently have my own buffering API written in via the iostreams
streambuf class that runs overtop physfs (I believe I posted that a
while back).
I'll take a look at this..
Thanks..
On Fri, 2003-05-02 at 08:04, Ryan C. Gordon wrote:
> > In some drivers, they are identical (it'll read size*count bytes in one
> > block), others will be (theoretically) more efficient to read 8192 bytes
> > in one block, but likely do the exact same thing (size*count) under the
> > hood.
>
> Some more thoughts:
>
> ...the _real_ tradeoff is that if you can't read that whole block, you
> get nothing back if you've asked for size=8192 count=1, whereas size=1
> count=8192 will return however many bytes were actually available.
>
> The smartest move, really, is to use the physfs buffering API and then
> make the read call in whatever way works best for your program. If you do
> it right, then most read calls will run at the about the speed of a
> memcpy() of size*count bytes and the total i/o overhead reduces the more
> you can safely buffer (that is, without running into disk swapping) at
> once.
>
> Finally, don't ever do i/o, physfs or otherwise, in time-critical loops. I
> assume this is a discussion about lowering startup or mapchange times or
> whatnot, but I figured I should throw that out there anyhow.
>
> --ryan.
--
Edward Rudd <eddie at omegaware.com>
More information about the physfs
mailing list