On Tue, Oct 9, 2012 at 11:32 AM, Matthew Flatt <span dir="ltr">&lt;<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">At Tue, 9 Oct 2012 18:00:14 +0000 (UTC), Dan Liebgold wrote:<br></div>
It still seems strange to me that we should implement our own<br>
filesystem of some sort to get decent filesystem performance.<br>
<br>
</blockquote></div><div><br></div><div>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!</div><div><br></div><div>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.</div>
<div><br></div><div>We invoke Racket about 1500 times every time we build one of our game projects, and currently we have about 4-6 automated builds plus 20 programmers building as well. (You can probably only imagine how much we depend on precompiled headers on the C++ side of our projects.) The numbers climb quickly. So accessing over the network is too slow. </div>
<div><br></div><div>Now it turns into a bit of a distribution problem. We have 150+ people in-house that need to run this, plus 50 or so more outsourced in various locations around the country. The standard Racket distro contains about 13,000 files. That many copies and syncs gets quite awkward, although it works.</div>
<div><br></div><div>Ideally we would have a handful of executables and archives to distribute and utilize. Also ideally, the archives would contain just .zo files (or something equivalent.)</div><div><br></div><div>Now I realize that we are the ones who must lay the track in front of this speeding freight train, so we are willing to do what it takes to implement this... just point me in the right direction!</div>
<div><div><br></div><div>BTW, when I selected MzScheme for this project back in &#39;05 I had no idea both what our production would look like at this point nor how well MzScheme would operate under these constraints. And Racket is improving upon it in every way!</div>
<div><br></div>-- <br>Dan Liebgold    [<a href="mailto:dan.liebgold@gmail.com">dan.liebgold@gmail.com</a>]<br>
</div>