Issue #8158 has been updated by sam.saffron (Sam Saffron).


Hi Yura, 

I think the commit rights here reduce the amount of work for the rest of the Ruby team. 

This change is approved and reviewed, so you can commit it directly once you have the rights, no need to make other people do the committing. 

Very keen to have this change included in Ruby. 

Sam 

----------------------------------------
Feature #8158: lightweight structure for loaded features index
https://bugs.ruby-lang.org/issues/8158#change-70318

* Author: funny_falcon (Yura Sokolov)
* Status: Assigned
* Priority: Normal
* Assignee: nobu (Nobuyoshi Nakada)
* Target version: 
----------------------------------------
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

---Files--------------------------------
0001-load.c-reduce-memory-usage-of-loaded_features_index.patch (5.99 KB)
load.c-loaded_features_numindex.patch (4.99 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>