BENCHMARKS

Various operations comparing URI::Fast against URI's performance. The script to recreate is included in the bench folder of the distribution.

Tests were performed on a Pixelbook (i5) and Perl 5.26.2 installed with perlbrew:

perlbrew install --clang -Dusemymalloc -Doptimize=-O3 perl-5.26.2

Earlier testing was done with a similarly equipped MacBook Pro. It is interesting to note that URI::Fast's rate is roughly the same, but URI's rate increased significantly over Perl compiled for MacOS.

Constructor

                    Rate            URI      URI::Fast
      URI       116822/s             --           -87%
URI::Fast       892857/s           664%             --

Get scheme

                    Rate            URI      URI::Fast
      URI        92764/s             --           -89%
URI::Fast       847458/s           814%             --

Set scheme

                    Rate            URI      URI::Fast
      URI        57937/s             --           -93%
URI::Fast       847458/s          1363%             --

Get authority

                    Rate            URI      URI::Fast
      URI        60606/s             --           -89%
URI::Fast       555556/s           817%             --

Set authority

                    Rate            URI      URI::Fast
      URI        38344/s             --           -94%
URI::Fast       632911/s          1551%             --

Get path (scalar)

                    Rate            URI      URI::Fast
      URI        85763/s             --           -86%
URI::Fast       602410/s           602%             --

Get path (list)

                    Rate            URI      URI::Fast
      URI        71023/s             --           -86%
URI::Fast       505051/s           611%             --

Set path (scalar)

                    Rate            URI      URI::Fast
      URI        76453/s             --           -87%
URI::Fast       588235/s           669%             --

Set path (array)

                    Rate            URI      URI::Fast
      URI        75758/s             --           -84%
URI::Fast       471698/s           523%             --

Get query

                    Rate            URI      URI::Fast
      URI        45579/s             --           -89%
URI::Fast       423729/s           830%             --

Set query parameter

                    Rate            URI      URI::Fast
      URI        53706/s             --           -87%
URI::Fast       413223/s           669%             --

Get query (hash)

                    Rate            URI      URI::Fast
      URI        45746/s             --           -88%
URI::Fast       381679/s           734%             --

Get query keys

                    Rate            URI      URI::Fast
      URI        45537/s             --           -88%
URI::Fast       384615/s           745%             --

Stringification

                    Rate            URI      URI::Fast
      URI        83472/s             --           -75%
URI::Fast       335570/s           302%             --

uri_split

                     Rate     URI::Split      URI::Fast
URI::Split       458716/s             --           -55%
 URI::Fast      1020408/s           122%             --

Encode

                          Rate    URI::Escape    URL::Encode      URI::FastURI::Encode::XS
    URI::Escape         5218/s             --           -26%          -100%          -100%
    URL::Encode         7016/s            34%             --           -99%           -99%
      URI::Fast      1111111/s         21196%         15738%             --            -4%
URI::Encode::XS      1162791/s         22186%         16474%             5%             --

Decode

                          Rate    URL::Encode    URI::Escape      URI::FastURI::Encode::XS
    URL::Encode         5568/s             --            -3%           -99%           -99%
    URI::Escape         5714/s             3%             --           -99%           -99%
      URI::Fast       568182/s         10105%          9844%             --           -33%
URI::Encode::XS       847458/s         15120%         14732%            49%             --

IRI - ctor

                    Rate            IRI      URI::Fast
      IRI        12207/s             --           -99%
URI::Fast       847458/s          6842%             --

IRI - set query (hash)

                    Rate            IRI      URI::Fast
      IRI        11299/s             --           -98%
URI::Fast       617284/s          5363%             --

IRI - set param

                    Rate            IRI      URI::Fast
      IRI        11455/s             --           -98%
URI::Fast       505051/s          4309%             --

IRI - set path

                    Rate            IRI      URI::Fast
      IRI        11740/s             --           -98%
URI::Fast       746269/s          6257%             --