From: "funny_falcon (Yura Sokolov)" Date: 2013-03-24T22:47:04+09:00 Subject: [ruby-core:53691] [ruby-trunk - Feature #8158] lightweight structure for loaded features index Issue #8158 has been updated by funny_falcon (Yura Sokolov). Same for ruby_2_0_0 branch https://github.com/funny-falcon/ruby/compare/ruby_2_0_0...features_index/ruby_2_0_0.diff https://github.com/funny-falcon/ruby/compare/ruby_2_0_0...features_index/ruby_2_0_0 ---------------------------------------- Feature #8158: lightweight structure for loaded features index https://bugs.ruby-lang.org/issues/8158#change-37877 Author: funny_falcon (Yura Sokolov) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 Use lightweight structure for loaded_features index: - use hand made simple hash structure, which uses only one memory chunk, - do not store feature name string, only hash of it, since loaded_feature_path will recheck feature name on hash collision - use single linked lists instead of arrays for storing features indices. - store this lists inside one array, using array's indices as a reference. While startup speedup improvement is relatively small compared current implementation, this one does not need any Ruby Objects at all, so that there is no presure on GC. https://github.com/ruby/ruby/pull/264.patch https://github.com/ruby/ruby/pull/264.diff https://github.com/ruby/ruby/pull/264 -- http://bugs.ruby-lang.org/