我有图片托管。所有图像请求都使用mod_rewrite重定向到PHP脚本。 PHP脚本使用函数fread()并显示来自另一个文件的图片。我想知道,这是否会占用大量处理器时间?
答案 0 :(得分:1)
这取决于你认为“大量处理器时间”的程度,但是从你所描述的内容来看,与从磁盘读取映像的I / O时间相比,mod_rewrite和PHP所需的处理时间是微不足道的。并通过网络发送。
如果您担心速度,将图像缓存在内存中可能会带来最大的好处。
答案 1 :(得分:0)
是的,这给Web服务器带来了相当大的压力,因为PHP解释器必须针对每个小资源请求进行初始化,并传递数据。大家一致认为,在高流量网站上做这件事并不是一件好事。
你为什么这样做,你在调整图像大小吗?
答案 2 :(得分:0)
在达到CPU限制之前你将耗尽内存:-) 读/写文件不是CPU密集型任务,但为此创建的每个apache进程最多可以占用50 MB的RAM。
答案 3 :(得分:0)
如果您想快速安全地发送图像,您应该查看X-SendFile - 这允许您的php脚本告诉您的Web服务器使用类似header('X-SendFile: /path/to/the/file');
对于apache,mod_xsend文件(http://tn123.ath.cx/mod_xsendfile/)虽然标记为beta,但它已经证明在生产中非常稳定,并且其源代码相当小,可以轻松审核。