PHP: Безопасен ли gzdeflate для нескольких машин?

В руководстве PHP есть комментарий к gzdeflate:

gzcompress производит более длинные данные, потому что он вставляет информацию о кодировке в строку. Если вы сжимаете данные, которые будут обрабатываться только на одной машине, вам не нужно беспокоиться о том, какую из этих функций вы используете. Однако, если вы передаете данные, сжатые этими функциями, на другую машину, вы должны использовать gzcompress.

а потом

работая 50000 повторений по разному контенту, я обнаружил, что gzdeflate () и gzcompress () выполняются одинаково быстро, независимо от уровня содержимого и уровня сжатия, но gzinflate () всегда примерно в два раза быстрее, чем gzuncompress ().

Для моей цели я архивирую данные на машине для будущего использования. Данные читаются часто, но записываются только один раз. Теоретически, в один прекрасный день он будет перенесен на другую машину, если в какой-то момент я сменил серверы, но это через несколько лет.

Безопасно ли мне использовать gzdeflate и gzinflate в отличие от gzcompress и gzuncompress?

Мое мышление таково: gzinflate быстрее, и это очень поможет серверу, так как будет много запросов на чтение. Если в какой-то момент в будущем я не смогу прочитать файл, тогда я смогу выяснить, как распаковать файл и повторно сжать его, не так ли? Дело не в том, что gzinflate будет просто волшебным образом не работать в один прекрасный день, как, кажется, первый комментарий. Даже отсутствие заголовка в 6 байт я уверен, что он будет расширяться каким-то образом.

Мысли?

ОБНОВЛЕНИЕ – Контрольный показатель

10 000 итераций каждый:

gzdeflate took 19.158888816833 seconds and size 18521 gzinflate took 1.4803981781006 seconds gzcompress took 19.376484870911 seconds and size 18527 gzuncompress took 1.6339199542999 seconds gzencode took 20.015944004059 seconds and size 18539 gzdecodetook 1.8822891712189 seconds 

Комментарий – глупость. Вы можете использовать любой из gzcompress , gzdeflate или gzencode для создания сжатых данных, которые можно переносить в любом месте. Эти функции различаются только в обертке вокруг данных дефляции (RFC 1951). gzcompress имеет обертку zlib (RFC 1950), gzdeflate не имеет обертки, а gzencode имеет gzip-обертку (RFC 1952).

Я бы порекомендовал не использовать gzdeflate , так как никакая обертка не означает проверку целостности. gzdeflate следует использовать только тогда, когда создается другая оболочка вне этого, например, для zip-файлов, которые также используют формат дефляции. Комментарий о скорости почти наверняка неверен. Проверка целостности gzuncompress() занимает очень мало времени по сравнению с декомпрессией. Вы должны сделать свои собственные тесты.

Из этого одного примера я мог бы быть слишком обобщенным, но я бы сказал, что вы должны полностью игнорировать комментарии в документации PHP. Они, чтобы быть щедрыми, неосведомленными.

Кстати, эти функции называются ужасно запутанным образом. Только gzencode должен иметь « gz » в названии, так как это единственный из тех, что на самом деле имеет дело с форматом .gz . gzcompress звучит так, как будто он сжимается в формате gzip, но на самом деле он сжимается в формате zlib.