Feature #12973
closed[RFC] net/http: use require_relative to reduce syscalls
Description
require_relative speeds up loading of files by reducing path
lookups. On a clean install with RubyGems-enabled,
"ruby -rnet/http -e exit" shows a reduction in failed open(2)
syscalls from 410 to 350 (x86-64 GNU/Linux).
I could not measure a time difference on my Linux-based
machines, however this should be noticeable to users of other
kernels with worse syscall and VFS performance than Linux.
Further use of require_relative will reduce lookups in other
places.
Thoughts?
Ideally, I'd like to get all of stdlib using require_relative.
Syscall failures annoy me greatly by making strace output noisy.
This is probably more suited for the 2.5 development cycle.
Files
Updated by shevegen (Robert A. Heiler) almost 10 years ago
I have no particular pro or con opinion, not that it would be relevant anyway - but I am watching this closely out of interest what others have to say. :)
Updated by hsbt (Hiroshi SHIBATA) over 9 years ago
- Status changed from Open to Assigned
- Assignee set to naruse (Yui NARUSE)
- Target version set to 2.5
Updated by normalperson (Eric Wong) over 9 years ago
Updated by shyouhei (Shyouhei Urabe) over 9 years ago
I remember there was a similar issue https://bugs.ruby-lang.org/issues/8781.
Updated by shyouhei (Shyouhei Urabe) over 9 years ago
- Related to Feature #8781: Use require_relative() instead of require() if possible added
Updated by naruse (Yui NARUSE) almost 9 years ago
- Assignee changed from naruse (Yui NARUSE) to normalperson (Eric Wong)
OK, could you commit it?
Updated by Anonymous almost 9 years ago
- Status changed from Assigned to Closed
Applied in changeset trunk|r60388.
net/http: use require_relative to reduce syscalls
require_relative speeds up loading of files by reducing path
lookups. On a clean install with RubyGems-enabled,
"ruby -rnet/http -e exit" shows a reduction in failed open(2)
syscalls from 410 to 350 (x86-64 GNU/Linux).
I could not measure a time difference on my Linux-based
machines, however this should be noticeable to users of other
kernels with worse syscall and VFS performance than Linux.
Further use of require_relative will reduce lookups in other
places.
- lib/net/http.rb: use require_relative
[ruby-core:78285] [Feature #12973]