| Index: third_party/JSON/JSON-2.59/eg/bench_encode.pl
|
| diff --git a/third_party/JSON/JSON-2.59/eg/bench_encode.pl b/third_party/JSON/JSON-2.59/eg/bench_encode.pl
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..d360a5c3e8823b2e3e79ab59b5f5ccf825ab8a2e
|
| --- /dev/null
|
| +++ b/third_party/JSON/JSON-2.59/eg/bench_encode.pl
|
| @@ -0,0 +1,86 @@
|
| +#!/usr/bin/perl
|
| +
|
| +use strict;
|
| +use warnings;
|
| +use Benchmark qw( cmpthese timethese );
|
| +
|
| +our $VERSION = '1.00';
|
| +
|
| +my $wanttime = $ARGV[1] || 5;
|
| +
|
| +use JSON qw( -support_by_pp -no_export ); # for JSON::PP::Boolean inheritance
|
| +use JSON::PP ();
|
| +use JSON::XS ();
|
| +use utf8;
|
| +
|
| +my $pp = JSON::PP->new->utf8;
|
| +my $xs = JSON::XS->new->utf8;
|
| +
|
| +local $/;
|
| +
|
| +my $json = <>;
|
| +my $perl = JSON::XS::decode_json $json;
|
| +my $result;
|
| +
|
| +
|
| +printf( "JSON::PP %s\n", JSON::PP->VERSION );
|
| +printf( "JSON::XS %s\n", JSON::XS->VERSION );
|
| +
|
| +
|
| +print "-----------------------------------\n";
|
| +print "->encode()\n";
|
| +print "-----------------------------------\n";
|
| +
|
| +$result = timethese( -$wanttime,
|
| + {
|
| + 'JSON::PP' => sub { $pp->encode( $perl ) },
|
| + 'JSON::XS' => sub { $xs->encode( $perl ) },
|
| + },
|
| + 'none'
|
| +);
|
| +cmpthese( $result );
|
| +
|
| +print "-----------------------------------\n";
|
| +print "->pretty->canonical->encode()\n";
|
| +print "-----------------------------------\n";
|
| +
|
| +$pp->pretty->canonical;
|
| +$xs->pretty->canonical;
|
| +
|
| +$result = timethese( -$wanttime,
|
| + {
|
| + 'JSON::PP' => sub { $pp->encode( $perl ) },
|
| + 'JSON::XS' => sub { $xs->encode( $perl ) },
|
| + },
|
| + 'none'
|
| +);
|
| +cmpthese( $result );
|
| +
|
| +print "-----------------------------------\n";
|
| +
|
| +
|
| +__END__
|
| +
|
| +=pod
|
| +
|
| +=head1 SYNOPSYS
|
| +
|
| + bench_encode.pl json-file
|
| + # or
|
| + bench_encode.pl json-file minimum-time
|
| +
|
| +=head1 DESCRIPTION
|
| +
|
| +L<JSON::PP> and L<JSON::XS> encoding benchmark.
|
| +
|
| +=head1 AUTHOR
|
| +
|
| +makamaka
|
| +
|
| +=head1 LISENCE
|
| +
|
| +This library is free software; you can redistribute it and/or modify it
|
| +under the same terms as Perl itself.
|
| +
|
| +=cut
|
| +
|
|
|