From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Oct 10 10:19:37 EDT 2012

At Tue, 9 Oct 2012 12:22:59 -0700, Dan Liebgold wrote:
> On Tue, Oct 9, 2012 at 11:32 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > At Tue, 9 Oct 2012 18:00:14 +0000 (UTC), Dan Liebgold wrote:
> > It still seems strange to me that we should implement our own
> > filesystem of some sort to get decent filesystem performance.
> >
> >
> Indeed. I think in game development we tend to be a bit nuts about
> performance, but I do have some numbers to back it up!
> During a single startup of our app we trigger about 7000 file operations in
> the collects directory. When stored on a local hard drive it takes about 2
> seconds. On a network drive that number climbs to about 30 seconds. And
> that is just loading the collects we utilize.

A factor of 15 is a lot.

On the good cs.utah.edu (my department) network filesystem, Racket
starts in about the same as on my local machine.

One the less-good eng.utah.edu (my college) network filesystem,
starting Racket takes about 5 times as long, which is uncomfortable.

People who know about network filesystems tell me that the difference
is in how the filesystems are tuned. They think a single file to hold
bytecode will likely help by trading meta-data operations on many files
for many read operations on a single file.

I guess we should try this, but I think we should keep it specific to
bytecode loading. That is, I don't think we should try to splice a
.zip-based filesystem into Racket's core filesystem operations.

Posted on the dev mailing list.