У меня есть внешний интерфейс PHP и бэкэнд C ++, и мне нужно иметь возможность отправлять группы имен во внешний интерфейс. Какой сериализованный формат будет наиболее эффективным / быстрым для чтения PHP?
Примеры данных
group1: name1 3923 name2 9879 name3 8944 group2: name5 9823 group3: name9 9822 name1 4894
Что было бы самым быстрым для PHP для чтения?
Собственный сериализованный формат PHP, вероятно, будет самым быстрым. unserialize()
– это функция, используемая PHP для преобразования этих данных в собственные типы. Этот пост имеет различные ссылки на реализацию некоторых языков в сериализованном формате PHP, я уверен, что вы можете легко конвертировать один из них.
Я использовал PHP serialize () и unserialize () в больших текстовых файлах, и он выполнял ужасно (это было пару лет назад – может быть, теперь это лучше). Во всяком случае, я разработал небольшой трюк, чтобы преодолеть это, он просто включает в себя создание объявления массива PHP из данных, которые вы экспортируете прямо в текстовый файл, например:
<?php $groups = array('groups' => array( array('jeff' => 2343, 'tom' => 8477), array('baal' => 2873, 'scorpio' => 3210), array('jeff' => 2343, 'tom' => 8477) ) ) ); ?>
… и затем unserializing это, простозывая:
include 'groups.php';//makes $groups available
Хорошо работала тогда.
JSON будет довольно легко использовать json_decode
. Я не уверен в скорости, но если вы не планируете передавать мегабайты этих данных между системами, это должно быть неуместно, с кем вы идете.
Как отметил Паоло, вы можете использовать json_decode, который очень быстр. На бэкэнде C ++ это некоторые из ваших вариантов (взятых непосредственно с сайта json.org ):
C ++: