From: sam.saffron@... Date: 2018-02-19T21:12:09+00:00 Subject: [ruby-core:85656] [Ruby trunk Feature#14492] iseq loading + caching should be in core Issue #14492 has been updated by sam.saffron (Sam Saffron). In general bootsnap has had significantly more dev time. The actual technique it uses does not require and c extensions (though it uses one for the the on-disk structure) Agree we should have something like this built-in to Ruby, it would also allow us more flexibility around implementation. One idea would be for gem authors to be allowed to also ship a .cache folder with ISeqs if they wish. (generating on demand has some security problems, since gem runner may not have permission to gem location) Longer term I would like to see a way of jitting as well so the .cache folder also contains a jitted copy of the ISEQs. In theory we could ship platform specific .so files that encompass all the .rb files a gem has. This has tremendous saving around multiple file access and so on (auto loading and partial loading withstanding) ---------------------------------------- Feature #14492: iseq loading + caching should be in core https://bugs.ruby-lang.org/issues/14492#change-70447 * Author: normalperson (Eric Wong) * Status: Open * Priority: Normal * Assignee: ko1 (Koichi Sasada) * Target version: ---------------------------------------- ``` ... And not in a RubyGem like yomikomu(*) RubyGems itself is responsible for over 100ms of startup time on my system(**), so it would be beneficial to make it part of core and speed up rubygems (and stdlib). $ time ruby -e exit real 0m0.160s user 0m0.155s sys 0m0.004s $ time ruby --disable=gems -e exit real 0m0.014s user 0m0.013s sys 0m0.000s (*) git clone https://github.com/ko1/yomikomu.git (**) I admit, I am intent on continuing use of Ruby on a laptop from 2005. That's roughly when I started using Ruby, so any hardware which Ruby worked well on back then should work equally well for current and future versions of Ruby. And maybe this summer I'll dig out a 600 MHz Duron from the early 2000s :D ``` -- https://bugs.ruby-lang.org/ Unsubscribe: