PHP: массив как var_export / include против (не) сериализации против кода json_ (en | de) - PullRequest
18 голосов
/ 19 января 2010

Я должен передать большой массив с одного сервера на другой, используя файл. Это многомерный, но довольно простой массив. Сейчас я ищу наиболее эффективный способ, чтобы поместить этот файл в мое приложение на втором сервере. Таким образом, этот вопрос касается части file-> array, а не части array-> file на первом сервере.

Конечно, я сделал несколько тестов по трем вариантам, которые казались наиболее перспективными. Мои полные данные теста:

Время:

  • включают в себя: 0,338 ...
  • десериализация: 0,180 ...
  • json_decode: 0,134 ...

пиковое использование памяти:

  • включает: 384374,64
  • unserialize: 201377.28
  • json_decode: 219528.08

размер файла:

  • включает: 3135 кБ
  • десериализация: 3142 кБ
  • json_decode: 1838 кБ

Я думаю, что json_decode - путь, потому что пиковое использование памяти - это мое самое маленькое беспокойство, и даже там json довольно хорош. Но скорость и размер файла json просто потрясающие. Я никогда не думал, что это так быстро.

Есть возражения или другие предложения?

1 Ответ

2 голосов
/ 19 января 2010

Спасибо Ян за 1) на самом деле пробовать разные методы 2) делимся результатами

Некоторое время назад я работал над системой искусственного интеллекта, в которой база знаний хранилась в большом массиве. Я обнаружил, что процесс восстановления массива из записей базы данных (локальный mysql, около 30 000 строк) был на порядок быстрее, чем десериализация массива из файла.

(Это также означало, что позже я смог изменить код, чтобы только выборочно загружать соответствующие части дерева знаний, что еще более ускорило его).

НТН

C.

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