首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 字符串壓縮函數性能對比:gzcompress vs gzencode vs gzdeflate vs bzcompress

     編輯:PHP 綜合知識

四大壓縮函數簡介

函數格式解壓對應
gzcompressZLIBgzuncompress
gzencodeGZIPgzdecode (PHP≥5.4)
gzdeflateDEFLATEgzinflate
bzcompressBZIP2bzdecompress

基準測試代碼

<?php
$str1 = '布局 1 介紹 布局,簡單來說就是設置元素的大小和位置...'; // 中文測試串
$str2 = '!@#$%^&*()QWERTYUIOPSDFGHJKL...'; // 英數混合測試串

function compress_comp($str, $num) {
    $funcs = ['gzcompress', 'gzencode', 'gzdeflate', 'bzcompress'];
    echo '原文大小: ' . strlen($str) . "<br><br>";
    foreach ($funcs as $fn) {
        $start = microtime(true);
        for ($j = 0; $j < $num; $j++) {
            switch ($fn) {
                case 'gzcompress': $mstr = gzcompress($str, 9); break;
                case 'gzencode': $mstr = gzencode($str, 9); break;
                case 'gzdeflate': $mstr = gzdeflate($str, 9); break;
                case 'bzcompress': $mstr = bzcompress($str, 9); break;
            }
        }
        $end = microtime(true);
        echo "$fn 壓縮後大小: " . strlen($mstr) . " 耗時: " . round(($end - $start) * 1000, 5) . "ms<br><br>";
    }
}

compress_comp($str1, 1000);
compress_comp($str2, 1000);
?>

典型結果趨勢 (供參考)

  • 壓縮率:bzcompress > gzcompress ≈ gzencode > gzdeflate
  • 速度:gzdeflate > gzcompress ≈ gzencode > bzcompress
  • 中文文本:壓縮率顯著高於英數混合
  • 選型建議:追求速度用 gzdeflate;需 GZIP 相容用 gzencode;極致壓縮率用 bzcompress (CPU 密集)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved