从PHP阅读中最快的序列化数据格式

时间:2009-05-15 01:13:51

标签: php serialization

我有一个PHP前端和一个C ++后端,我需要能够向前端发送一组名称。什么序列化格式是最有效/最快的PHP阅读?

示例数据

group1:
  name1 3923
  name2 9879
  name3 8944
group2:
  name5 9823
group3: 
  name9 9822
  name1 4894

PHP阅读速度最快的是什么?

  • XML
  • JS​​ON
  • YAML
  • 协议缓冲区
  • 逗号/空间分隔我们自己的系统
  • 还有别的吗?其他

4 个答案:

答案 0 :(得分:6)

PHP自己的序列化格式可能是最快的。 unserialize()是PHP用于将此数据转换回其自己的类型的函数。 This post有其他语言实现PHP序列化格式的各种链接,我相信你可以轻松转换其中一种。

答案 1 :(得分:2)

我在大文本文件上使用了PHP的serialize()和unserialize(),并且它表现得很糟糕(那是几年前 - 也许它现在更好)。无论如何,我设计了一个小技巧来克服这个问题,它只是涉及从你直接导出到文本文件中的数据生成一个PHP数组声明,例如:

<?php
$groups = array('groups' => array( array('jeff' => 2343,
                                         'tom'  => 8477),
                                   array('baal' => 2873,
                                         'scorpio'  => 3210),
                                   array('jeff' => 2343,
                                         'tom'  => 8477)
                                 )
                            )
               );
?>

...然后通过简单地调用:

来反序列化它
include 'groups.php';//makes $groups available

当时很好地工作。

答案 2 :(得分:1)

使用json_decode可以轻松实现JSON。我不确定速度,但除非你打算在系统之间传输兆字节的数据,否则你应该选择哪一个。

答案 3 :(得分:0)

Paolo指出你可以使用非常快的json_decode。在C ++后端,这些是您的一些选择(直接从json.org网站获取):

C ++: