【发布时间】:2015-12-22 12:46:35
【问题描述】:
我使用这种方式从我的服务器发送一个 json 文件。
$data = file_get_contents('cache/file.json');
ob_start('ob_gzhandler');
// Output as normal
echo ($data);
cache/file.json 不是 gzip 压缩的(纯 json,整个没有空格 文件是一长行)。
我在想而不是每次请求文件时都对文件进行 gzip 压缩。 我应该将其存储为 gzip 文件吗
$gzjson = gzencode($data, 9);
file_put_contents('gzcache/file.json', $gzjson);
所以我会尽量减少服务器负载? 这个想法是gzip它,每次请求文件时 只提供已经压缩过的文件,而不是每次请求时都压缩它。
有人认为这是个好主意吗?
【问题讨论】:
-
答案很大程度上取决于文件有多大以及您请求它的频率。
-
最大文件大小(未压缩)为 200kb。压缩一次并在每次请求时提供压缩文件不是更好的做法吗?
-
我建议您编辑您的问题。 @Marged 是绝对正确的,他的考虑是您问题的关键要素。
-
这是因为文件将被多次请求,我想实现较少的服务器资源密集方法。很明显不是吗?如果我只读一次,我一开始就不会费心压缩它。
-
所以假设文件是 200kb 未压缩和 100kb 压缩,每天将被读取大约 10k 次。