diff options
| author | U.Nakamura <usa@ruby-lang.org> | 2023-09-05 20:47:58 +0900 |
|---|---|---|
| committer | U.Nakamura <usa@ruby-lang.org> | 2023-09-05 20:48:57 +0900 |
| commit | 8a8d889ca2ba1ace8784e49e02a6616dd5765d9e (patch) | |
| tree | 33f71dd7f4465a01c31f50177af155a894699646 /array.c | |
| parent | e88ffb885af222332826d46565ca405f4523ed8f (diff) | |
merge revision(s) 1f115f141dd17f75049a5e17107906c5bcc372e1: [Backport #19246]
Speed up rebuilding the loaded feature index
Rebuilding the loaded feature index slowed down with the bug fix
for #17885 in 79a4484a072e9769b603e7b4fbdb15b1d7eccb15. The
slowdown was extreme if realpath emulation was used, but even when
not emulated, it could be about 10x slower.
This adds loaded_features_realpath_map to rb_vm_struct. This is a
hidden hash mapping loaded feature paths to realpaths. When
rebuilding the loaded feature index, look at this hash to get
cached realpath values, and skip calling rb_check_realpath if a
cached value is found.
Fixes [Bug #19246]
---
load.c | 27 +++++++++++++++++++++++----
vm.c | 2 ++
vm_core.h | 1 +
3 files changed, 26 insertions(+), 4 deletions(-)
Diffstat (limited to 'array.c')
0 files changed, 0 insertions, 0 deletions
