From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS5578 85.248.0.0/16 X-Spam-Status: No, score=-2.9 required=3.0 tests=AWL,BAYES_00, RCVD_IN_MSPIKE_BL,RCVD_IN_MSPIKE_ZBI,RCVD_IN_XBL,RDNS_NONE,SPF_FAIL, SPF_HELO_FAIL,TO_EQ_FM_DOM_SPF_FAIL shortcircuit=no autolearn=no autolearn_force=no version=3.4.0 Received: from 80x24.org (unknown [85.248.227.164]) by dcvr.yhbt.net (Postfix) with ESMTP id 1980D1FF30 for ; Wed, 23 Nov 2016 22:45:38 +0000 (UTC) From: Eric Wong To: spew@80x24.org Subject: [PATCH] net/http: use require_relative to reduce syscalls Date: Wed, 23 Nov 2016 22:45:31 +0000 Message-Id: <20161123224531.6058-1-e@80x24.org> List-Id: 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 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/net/http.rb b/lib/net/http.rb index 5a22fc0..55d9ba2 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -20,7 +20,7 @@ # See Net::HTTP for an overview and examples. # -require 'net/protocol' +require_relative 'protocol' require 'uri' module Net #:nodoc: @@ -1580,17 +1580,17 @@ def D(msg) end -require 'net/http/exceptions' +require_relative 'http/exceptions' -require 'net/http/header' +require_relative 'http/header' -require 'net/http/generic_request' -require 'net/http/request' -require 'net/http/requests' +require_relative 'http/generic_request' +require_relative 'http/request' +require_relative 'http/requests' -require 'net/http/response' -require 'net/http/responses' +require_relative 'http/response' +require_relative 'http/responses' -require 'net/http/proxy_delta' +require_relative 'http/proxy_delta' -require 'net/http/backward' +require_relative 'http/backward' -- EW