Issue #10628 has been updated by Yui NARUSE.


The benchmark consists about two parts: split and new.

In split, the difference of its regexp seems the cause of slow down (for example backtracks of userinfo.
It can be optimized.

In new, some checks are always enabled; it is feature.

~~~
require 'uri'

100_000.times{
  scheme, userinfo, host, port,
    registry, path, opaque, query, fragment = URI.split('http://www.ruby-lang.org')
  URI::HTTP.new(scheme, userinfo, host, port,
                                     registry, path, opaque, query,
                                     fragment, URI,false)
}
~~~

----------------------------------------
misc #10628: Peformance of URI module
https://bugs.ruby-lang.org/issues/10628#change-50616

* Author: Guo Xiang Tan
* Status: Open
* Priority: Normal
* Assignee: Yui NARUSE
* Category: 
* Target version: 
----------------------------------------
Please view attached screenshot or go to [the following link](https://railsbench.herokuapp.com/tgxworld/ruby?utf8=%E2%9C%93&result_types%5B%5D=app_uri&commit=Submit) to see benchmark graph over time.

It got slower after this [commit](https://github.com/ruby/ruby/commit/bb83f32dc3e0424d25fa4e55d8ff32b061320e41).

Hope this helps.

---Files--------------------------------
Screenshot from 2014-12-21 22_41_39.png (63.5 KB)


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