ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/XS.pm
(Generate patch)

Comparing JSON-XS/XS.pm (file contents):
Revision 1.39 by root, Mon Jun 11 02:58:10 2007 UTC vs.
Revision 1.40 by root, Mon Jun 11 03:42:57 2007 UTC

86package JSON::XS; 86package JSON::XS;
87 87
88use strict; 88use strict;
89 89
90BEGIN { 90BEGIN {
91 our $VERSION = '1.23'; 91 our $VERSION = '1.24';
92 our @ISA = qw(Exporter); 92 our @ISA = qw(Exporter);
93 93
94 our @EXPORT = qw(to_json from_json objToJson jsonToObj); 94 our @EXPORT = qw(to_json from_json objToJson jsonToObj);
95 require Exporter; 95 require Exporter;
96 96
651shrink). Higher is better: 651shrink). Higher is better:
652 652
653 module | encode | decode | 653 module | encode | decode |
654 -----------|------------|------------| 654 -----------|------------|------------|
655 JSON | 7645.468 | 4208.613 | 655 JSON | 7645.468 | 4208.613 |
656 JSON::DWIW | 68534.379 | 79437.576 | 656 JSON::DWIW | 40721.398 | 77101.176 |
657 JSON::PC | 65948.176 | 78251.940 | 657 JSON::PC | 65948.176 | 78251.940 |
658 JSON::Syck | 23379.621 | 28416.694 | 658 JSON::Syck | 22844.793 | 26479.192 |
659 JSON::XS | 388361.481 | 199728.762 | 659 JSON::XS | 388361.481 | 199728.762 |
660 JSON::XS/2 | 218453.333 | 192399.266 | 660 JSON::XS/2 | 218453.333 | 192399.266 |
661 JSON::XS/3 | 338250.323 | 192399.266 | 661 JSON::XS/3 | 338250.323 | 192399.266 |
662 Storable | 15732.573 | 28571.553 | 662 Storable | 15779.925 | 14169.946 |
663 -----------+------------+------------+ 663 -----------+------------+------------+
664 664
665That is, JSON::XS is about five times faster than JSON::DWIW on encoding, 665That is, JSON::XS is about five times faster than JSON::DWIW on encoding,
666about three times faster on decoding, and over fourty times faster 666about three times faster on decoding, and over fourty times faster
667than JSON, even with pretty-printing and key sorting. It also compares 667than JSON, even with pretty-printing and key sorting. It also compares
671search API (http://nanoref.com/yahooapis/mgPdGg): 671search API (http://nanoref.com/yahooapis/mgPdGg):
672 672
673 module | encode | decode | 673 module | encode | decode |
674 -----------|------------|------------| 674 -----------|------------|------------|
675 JSON | 254.685 | 37.665 | 675 JSON | 254.685 | 37.665 |
676 JSON::DWIW | 1014.244 | 1087.678 | 676 JSON::DWIW | 843.343 | 1049.731 |
677 JSON::PC | 3602.116 | 2307.352 | 677 JSON::PC | 3602.116 | 2307.352 |
678 JSON::Syck | 558.035 | 776.263 | 678 JSON::Syck | 505.107 | 787.899 |
679 JSON::XS | 5747.196 | 3543.684 | 679 JSON::XS | 5747.196 | 3690.220 |
680 JSON::XS/2 | 3968.121 | 3589.170 | 680 JSON::XS/2 | 3968.121 | 3676.634 |
681 JSON::XS/3 | 6105.246 | 3561.134 | 681 JSON::XS/3 | 6105.246 | 3662.508 |
682 Storable | 4456.337 | 5320.020 | 682 Storable | 4417.337 | 5285.161 |
683 -----------+------------+------------+ 683 -----------+------------+------------+
684 684
685Again, JSON::XS leads by far. 685Again, JSON::XS leads by far (except for Storable which non-surprisingly
686decodes faster).
686 687
687On large strings containing lots of high unicode characters, some modules 688On large strings containing lots of high unicode characters, some modules
688(such as JSON::PC) seem to decode faster than JSON::XS, but the result 689(such as JSON::PC) seem to decode faster than JSON::XS, but the result
689will be broken due to missing (or wrong) unicode handling. Others refuse 690will be broken due to missing (or wrong) unicode handling. Others refuse
690to decode or encode properly, so it was impossible to prepare a fair 691to decode or encode properly, so it was impossible to prepare a fair

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines