From: Eric Hodel Date: 2011-03-22T06:26:11+09:00 Subject: Re: rubygems-update 1.6.0 Released On Mar 21, 2011, at 6:54 AM, Roger Pack wrote: >> 2 Major Enhancements: > > Cool thanks for the release. > > If you ever get the time for it, the following are a couple ideas that > might help speed up rubygems on windows. I had some success with them > with my faster_rubygems project, but haven't kept up with the latest > updates. Some of these may already be included in rubygems I don't > know... > > 1) use marshal instead of yaml for the specs (this helps jruby boot more > quickly since yaml is a heavier dependency on that VM). The on-disk gemspecs are not in yaml format, they're in ruby format. > 2) combine all the gemspec files into one "cached" gemspec file, per gem > directory. I haven't been willing to sacrifice the simplicity for doing something better in this area, there are many other places in RubyGems that need to be improved. Feel free to take a crack at it, though. > 3) also cache somehow a list of each "requireable" file within each gem > (for instance, within the file for 2). Then for > Gem.searcher.find_in_unresolved you just iterate over that list instead > of actually hitting the file system. I tried this once before and found it to be significantly slower than Dir[]. I believe I was working on OS X at the time. Note: RubyGems no longer places bin/ from gems with executables on $LOAD_PATH anymore, so the amount of globs required has been cut in (up to) half. > The combination of these makes for lightning fast rubygems in windows, > though I'm not sure which one has most effect. Benchmarks would be required, of course.