Project

General

Profile

Feature #8158

lightweight structure for loaded features index

Added by funny_falcon (Yura Sokolov) over 7 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
[ruby-core:53688]

Description

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) 0001-load.c-reduce-memory-usage-of-loaded_features_index.patch funny_falcon (Yura Sokolov), 12/12/2016 10:39 AM
load.c-loaded_features_numindex.patch (4.99 KB) load.c-loaded_features_numindex.patch simplified version funny_falcon (Yura Sokolov), 12/12/2016 11:24 AM

Related issues

Related to Ruby master - Feature #14460: Speed up `require` and reduce memory usageClosedActions

Also available in: Atom PDF