Как я могу оптимизировать вывод XML, чтобы время передачи данных было меньше? - PullRequest
1 голос
/ 29 октября 2010

HI

У меня есть cron, который вызывает базовый URL API. Вывод xml, поэтому я использую php file_get_contents() для обработки данных.

У меня вопрос: влияет ли формат вывода XML на время передачи с одного сервера на другой? Крон работает каждые десять минут, и я не хочу, чтобы в какой-то момент кроны перекрывались, потому что обработка данных чувствительна ко времени.

например:

<?xml version="1.0"?><api><data>sometext here</data></api><!-- As one line -->

<?xml version="1.0"?>
<api>
   <data>sometext here</data>
</api>   <!-- As multiple lines -->

Обратите внимание, что это только пример xml, мои данные делают вывод xml длиной более 2000 строк.

Я проверил это, и кажется, что это то же самое (возможно, с интервалом в микросекунды) для любого типа xml. Есть ли способ ускорить это?

Ответы [ 3 ]

1 голос
/ 29 октября 2010

Если вы не урезаете свою длину вывода XML, я не вижу возможности для большого ускорения.

Удаление ненужных пробелов для транспорта довольно полезно, потому что это может снизить скорость транспорта.даже если это не так уж много.чем длиннее ваш xml и чем больше у вас там ненужных пробелов (ненужных для анализа xml. используется только для удобства чтения), тем больше вы выиграете.Если у вас есть глубокая иерархия и много пробелов, чтобы сделать его читабельным, вы получите много.Если нет, то зачистка не уменьшит скорость передачи.

0 голосов
/ 29 октября 2010

Сжатие ваших страниц с помощью gzip. Вы можете сделать это через mod_gzip (модуль apache) или, если вы используете PHP, установите zlib.output_compression = On в php.ini. Это сожмет ваш открытый текст до ~ 20% от его исходного размера.

Кроме того, если вас интересуют абсолютные наименьшие возможные данные вместо XML, вы можете отправить их с помощью JSON.

0 голосов
/ 29 октября 2010

Может быть, вы могли бы попробовать сжатие, как gzip.

...