Самый быстрый сериализации формат данных чтения PHP - PullRequest
3 голосов
/ 15 мая 2009

У меня есть веб-интерфейс PHP и бэкэнд C ++, и мне нужно иметь возможность отправлять группы имен в веб-интерфейс. Какой сериализованный формат будет наиболее эффективным / быстрым для чтения PHP?

Пример данных

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

Что бы PHP быстрее всего читал?

  • XML
  • 1011 * JSON *
  • YAML
  • Протокол буфера
  • Запятая / Пробел, разделенная нашей собственной системой
  • Что-нибудь еще? другой

Ответы [ 4 ]

6 голосов
/ 15 мая 2009

Серийный формат PHP, вероятно, будет самым быстрым. unserialize() - это функция, которую PHP использует для преобразования этих данных в свои собственные типы. Эта публикация содержит различные ссылки на реализации сериализованного формата PHP на других языках, я уверен, что вы могли бы легко конвертировать один из них.

2 голосов
/ 15 мая 2009

Я использовал PHP serialize () и unserialize () для больших текстовых файлов, и он работал ужасно (это было пару лет назад - возможно, сейчас лучше). Во всяком случае, я разработал небольшой трюк для преодоления этого, он просто включает в себя создание объявления массива PHP из данных, которые вы экспортируете прямо в текстовый файл, например ::10000

<?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

Тогда хорошо работало.

1 голос
/ 15 мая 2009

JSON было бы довольно просто, используя json_decode. Я не уверен насчет скорости, но если вы не планируете передавать мегабайты этих данных между системами, то не имеет значения, с какой вы идете.

0 голосов
/ 15 мая 2009

Как отметил Паоло, вы можете использовать json_decode, который очень быстр. На бэкенде C ++ это некоторые из ваших опций (взяты непосредственно с сайта json.org ):

C ++:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...