PHP: массив как var_export/include vs. (un) serialize vs. json_ (en | de) код
Мне нужно передать большой массив с одного сервера на другой с помощью файла. Это многомерный, но довольно простой массив. Теперь я ищу наиболее эффективный способ получить этот файл в своем приложении на втором сервере. Итак, этот вопрос касается части файла- > массива, а не части массива- > файла на первом сервере.
Конечно, я сделал несколько тестов по 3 альтернативам, которые казались наиболее перспективными. Мои полные контрольные данные:
Время:
- включают: 0.338...
- unserialize: 0.180...
- json_decode: 0.134...
Использование пиковой памяти:
- включают: 384374.64
- unserialize: 201377.28
- json_decode: 219528.08
размер файла:
- включают: 3135 kB
- unserialize: 3142 kB
- json_decode: 1838 kB
Я думаю, что json_decode - это путь, потому что пиковое использование памяти - моя самая маленькая проблема, и даже там json неплохо. Но скорость и размер файла json просто скалы. Я никогда не думал, что это так быстро.
Любые возражения или другие предложения?
Ответы
Ответ 1
Престижность Ян
1) на самом деле опробовать разные методы
2) обмен результатами
Некоторое время назад я работал над системой AI, в которой база знаний хранилась в большом массиве. Я обнаружил, что на порядок быстрее восстанавливать весь массив из записей базы данных (локальный mysql, около 30 000 строк), а не неэтериализовать массив из файла.
(Это также означало, что позже я смог изменить код, чтобы выборочно загружать соответствующие части дерева знаний, что ускорило его еще больше).
НТН
С.