Project

General

Profile

Feature #12973

[RFC] net/http: use require_relative to reduce syscalls

Added by normalperson (Eric Wong) over 3 years ago. Updated almost 3 years ago.

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

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


Related issues

Related to Ruby master - Feature #8781: Use require_relative() instead of require() if possibleClosedActions

Updated by shevegen (Robert A. Heiler) over 3 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 3 years ago

  • Target version set to 2.5
  • Assignee set to naruse (Yui NARUSE)
  • Status changed from Open to Assigned

Updated by normalperson (Eric Wong) over 3 years ago

normalperson@yhbt.net wrote:

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

Comments? Maybe I'll commit this, soon.
Thanks.

#5

Updated by shyouhei (Shyouhei Urabe) over 3 years ago

  • Related to Feature #8781: Use require_relative() instead of require() if possible added

Updated by naruse (Yui NARUSE) almost 3 years ago

  • Assignee changed from naruse (Yui NARUSE) to normalperson (Eric Wong)

OK, could you commit it?

#7

Updated by Anonymous almost 3 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]

Also available in: Atom PDF