Chinaunix

标题: JSON,JSON::XS,JSON::PP [打印本页]

作者: kk861123    时间: 2012-09-25 11:07
标题: JSON,JSON::XS,JSON::PP
本帖最后由 kk861123 于 2012-09-25 11:09 编辑

有人能讲解下这三个模块的不同吗?(或优缺点)
JSON CPAN 4星
JSON::XS CPAN 4星半,貌似更快?
JSON:: PP 5.14已经变成perl内置的模块

为了安全性考虑那个好一点?
作者: sjdy521    时间: 2012-09-25 13:44
本帖最后由 sjdy521 于 2012-09-25 13:48 编辑

XS是使用了c的扩展,速度快,PP是纯perl实现,速度慢,使用JSON就可以了 这个模块会根据你系统安装的模块,自动选择使用XS或者PP(有XS的情况下,会优先选择XS),另外,我在5.14的Core modules里没找到这个模块的名字,但是cpan上说是5.14的内置模块了,不知道谁的对。。
作者: kk861123    时间: 2012-09-25 16:56
sjdy521 发表于 2012-09-25 13:44
XS是使用了c的扩展,速度快,PP是纯perl实现,速度慢,使用JSON就可以了 这个模块会根据你系统安装的模块, ...


谢谢哈~ 我又找到一个 JSON:: Any,这个是《Perl高效编程》里面提到的,
并且找到了这么一句:
The original need for JSON::Any has been solved (quite some time ago actually). If you're producing new code it is recommended to use JSON.pm which will optionally use JSON::XS for speed purposes.

作者: Perl_Er    时间: 2012-09-26 07:19
上次flw介绍我用json+jquery真的很好用:wink:
作者: py    时间: 2012-09-26 07:50
回复 1# kk861123

在cpan上找模块可不能看星星说事。很多评价是历史版本评价,甚至有恶意评价的。
2楼说的是对的。
JSON是日本人写的,后来Marc Lehmann写了JSON::XS。因为Marc Lehmann是Perl界牛人还老去日本的Perl组织讲课,膏药国的人应该都挺崇拜他的。JSON::XS也确实比JSON效率高,后来JSON的作者就在模块中做了判断,系统中安装了JSON::XS就默认用XS了。如果你一定要用纯Perl的JSON就要指明JSON:了。

如果你提安全性,我个人以为,安全性还得看作者是谁。用Marc Lehmann的一定没错
   
作者: kk861123    时间: 2012-09-26 09:01
py 发表于 2012-09-26 07:50
回复 1# kk861123

在cpan上找模块可不能看星星说事。很多评价是历史版本评价,甚至有恶意评价的。


谢谢!Marc Lehmann还是AnyEvent的作者吧?
作者: py    时间: 2012-09-26 10:36
kk861123 发表于 2012-09-26 09:01
谢谢!Marc Lehmann还是AnyEvent的作者吧?

是的。
也是Coro的作者,也是libev和libaio的作者。
这人是大神,用他写的模块肯定有保障。
作者: yakczh_cu    时间: 2013-09-05 14:20
本帖最后由 yakczh_cu 于 2013-09-05 15:06 编辑

cpan install JSON::XS

Test Summary Report
-------------------
t/19_incr.t           (Wstat: 65280 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 697 tests but ran 1.
t/21_evans.t          (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 1 tests but ran 0.
t/22_comment_at_eof.t (Wstat: 2048 Tests: 13 Failed:
  Failed tests:  1-7, 13
  Non-zero exit status: 8
Files=24, Tests=24867, 27 wallclock secs ( 8.58 usr +  0.75 sys =  9.33 CPU)
Result: FAIL
Failed 3/24 test programs. 9/24867 subtests failed.
dmake:  Error code 255, while making 'test_dynamic'
  MLEHMANN/JSON-XS-2.34.tar.gz
  dmake test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports MLEHMANN/JSON-XS-2.34.tar.gz
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
MLEHMANN/JSON-XS-2.34.tar.gz                 : make_test NO

换成用ppm安装竞然提示认证失败




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2