根据PHP docs,gzencode
支持0-9的压缩级别。
我想知道是否有人想要压缩某些东西,尽可能压缩它是否有意义?你不是一直想把它设置为9吗?总是在最大程度上压缩是否有任何缺点?
答案 0 :(得分:0)
这需要花费时间。压缩是一个占用大量CPU的过程, 压缩文件的时间越长,花费的时间就越长。因为 gzip提供了1到9 in的压缩级别范围
gzencode()
功能。
1给出了最快的压缩速度,但压缩率较低,而9给出了最高的压缩率,但压缩率更低。
我试图在下面举一个例子来理解。
// Initialize all required variables
$data = file_get_contents(dirname(__FILE__) . '/data.txt'); // which is big file data around 1MB.
$smallstring = "This is small string."; // small string to compress
$array = array(
'Big data' => $data,
'Small data' => $smallstring,
);
// Calling gzencode() with various compression levels
foreach ($array as $key => $string){
echo "{$key} :\t Size = ".strlen($string). "\n";
echo "level\t\tMD5\t\t\t\t\tTime\t\n";
for($i = -1; $i < 10; $i++) {
$start_time = microtime(true); // store time before compress
$output = gzencode($string, $i, FORCE_GZIP); // string wll compress here in diffrebnt level
$end_time = microtime(true); // store time after compress
echo "$i\t".md5($output). "\t" . ($end_time - $start_time)."\tms\n";
}
echo "\n";
}
这将生成如下输出
Big data : Size = 1380637
level MD5 Time
-1 ad730951a0cde5a05e152f40d4f6fe4a 0.01400089263916 ms
0 c7d8e4e6a5dbd82a73128f83ee2fc633 0.0069999694824219 ms
1 84d2229ad05877d2d54b0282a6cca0bf 0.0070009231567383 ms
2 ccab12e8b54ccf9e656badf4817e4959 0.0069999694824219 ms
3 f35b1091dc56c82c58618acbc553bdd4 0.007000207901001 ms
4 e515e7db5b16602143fec52da223762f 0.012000799179077 ms
5 4da249e96fccc7483f68044443ae819a 0.012001037597656 ms
6 ad730951a0cde5a05e152f40d4f6fe4a 0.01200008392334 ms
7 ad730951a0cde5a05e152f40d4f6fe4a 0.012001037597656 ms
8 729ecc80e4dd83b81d22eb652e870378 0.012001037597656 ms
9 5dba04d7f529c897c908526553c2cbde 0.012001037597656 ms
Small data : Size = 21
level MD5 Time
-1 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
0 7f8375c3cf1a8841e1c7b66be0f8690f 0 ms
1 bc5c0ee1059ec442789cdd4361501cb2 0 ms
2 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
3 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
4 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
5 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
6 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
7 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
8 d7263212e7a0f6ca6bf44f2b31ffecdb 0 ms
9 ea6f5c64dffa44254db7327289f9a248 0 ms
如您在上面的输出中看到的,使用相同的数据字符串,在不同的级别花费的时间不同。 但是,如您所见,当您使用小的数据时,所有级别的时间花费相同。
75%的网站以及几乎所有新旧浏览器和Web服务器都支持GZip。整个过程对用户是透明的,足够快的速度几乎可以在任何设备上运行,并且在某些情况下可以减少72%的资源。