1#!/usr/bin/env perl
2use Benchmark 'cmpthese';
3use URI::Escape;
4use URI::Encode::XS;
5
6cmpthese(-10, {
7    escape      => sub { URI::Escape::uri_escape('https://stackoverflow.com/questions/3629212/how can perls xsub die') },
8    encode      => sub { URI::Encode::XS::uri_encode('https://stackoverflow.com/questions/3629212/how can perls xsub die') },
9    encode_utf8 => sub { URI::Encode::XS::uri_encode_utf8('https://stackoverflow.com/questions/3629212/how can perls xsub die') },
10  });
11cmpthese(-10, {
12    unescape    => sub { URI::Escape::uri_unescape('https%3A%2F%2Fstackoverflow.com%2Fquestions%2F3629212%2Fhow%20can%20perls%20xsub%20die') },
13    decode      => sub { URI::Encode::XS::uri_decode('https%3A%2F%2Fstackoverflow.com%2Fquestions%2F3629212%2Fhow%20can%20perls%20xsub%20die') },
14    decode_utf8 => sub { URI::Encode::XS::uri_decode_utf8('https%3A%2F%2Fstackoverflow.com%2Fquestions%2F3629212%2Fhow%20can%20perls%20xsub%20die') },
15  });
16__END__
17=head1 RESULTS
18
19                   Rate      escape encode_utf8      encode
20  escape       140114/s          --        -94%        -98%
21  encode_utf8 2255100/s       1509%          --        -71%
22  encode      7735189/s       5421%        243%          --
23
24                   Rate    unescape decode_utf8      decode
25  unescape     188714/s          --        -95%        -97%
26  decode_utf8 3744638/s       1884%          --        -50%
27  decode      7429263/s       3837%         98%          --
28
29=cut
30