At Tue, 9 Oct 2012 12:22:59 -0700, Dan Liebgold wrote: > On Tue, Oct 9, 2012 at 11:32 AM, Matthew Flatt <mfl...@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. _________________________ Racket Developers list: http://lists.racket-lang.org/dev