W podręczniku PHP jest komentarz na gzdeflate mówiąc:PHP: Czy gzdeflate jest bezpieczny na wielu komputerach?
gzcompress produkuje dłuższe danych, ponieważ osadza informacje kodowanie na sznurku. Jeśli kompresujesz dane, które będą tylko obsługiwane na jednym komputerze, nie musisz się martwić o to, której z tych funkcji używasz. Jeśli jednak przekazujesz dane skompresowane tymi funkcjami do innej maszyny, powinieneś użyć użyć gzcompress.
a następnie
uruchomiony 50000 powtórek w różnej zawartości, stwierdziliśmy, że gzdeflate() i gzcompress() zarówno wykonywane równie szybko niezależnie treści i poziom kompresji, ale gzinflate() był zawsze o dwa razy szybciej niż gzuncompress().
Dla moich celów archiwizuję dane na komputerze do wykorzystania w przyszłości. Dane są często czytane, ale zapisywane tylko raz. Teoretycznie pewnego dnia zostanie przeniesiony na inną maszynę, jeśli zmienię serwery w pewnym momencie, ale to jest kilka lat później.
Czy mogę bezpiecznie używać gzdeflate i gzinflate w przeciwieństwie do gzcompress i gzuncompress?
Moje myślenie jest następujące: gzinflate jest szybsze, a to bardzo pomoże serwerowi, ponieważ będzie wiele żądań odczytu. Jeśli w pewnym momencie w przyszłości nie będę mógł odczytać pliku, powinienem być w stanie wymyślić, jak rozpakować plik i skompresować go, prawda? Nie chodzi o to, że gzinflate po prostu nie zadziała w magiczny sposób pewnego dnia, tak jak wydaje się mówić pierwszy komentarz. Nawet jeśli brakuje 6-bajtowego nagłówka, jestem pewien, że jakoś się rozwinie.
Myśli?
UPDATE - Benchmark
10000 iteracji każda:
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
Dziękuję za odpowiedź. To mi bardzo pomaga. Proszę również rozważyć umieszczenie swojej odpowiedzi na dokumentacji php.net. – Alasdair