【发布时间】:2013-12-16 05:03:08
【问题描述】:
我目前正在重写一个网站,该网站需要为每个图像设置很多不同的尺寸。过去,我通过在上传时为所有尺寸创建缩略图来做到这一点。但现在我怀疑是性能。这是因为现在我必须更改我的设计,而我的一半图像尺寸不合适。所以我想到了2个解决方案:
继续这样做并在后端添加一个按钮以重新生成所有图像。问题是我总是需要知道网站每个部分所需的每个尺寸。
只上传真实大小的图片,显示的时候在SRC标签中加入类似sr="thumbs.php?img=my-image-path/image.jpg&width=120&height=120"的标签。然后创建拇指并显示它。此外,我的脚本会检查拇指是否已经存在,如果存在则不需要重新创建它,只需显示它即可。每 5 天启动一个带有 crontask 的脚本以删除所有拇指(确保只使用有用的)。
我认为第二种解决方案更好,但我有点担心每次显示图像时我都需要调用 php,即使它已经创建,也是 php 让它显示...
感谢您的建议
【问题讨论】:
-
采用第二种方法,第一次可能会很慢,但最好不要调整永远不会使用的不必要的图像大小,一个缺点是第一次访问图像时速度很慢。跨度>
-
所以您想提高性能并决定每次有人访问页面时重新生成所有缩略图是个好主意?想想吧。
-
这真的取决于。对您来说最重要的是什么——上传性能还是展示性能?您的缩略图大小是否有很大的可变性,以至于预生成拇指不实用?你有什么样的交通模式。用户是否一遍又一遍地访问您的页面,高缓存性很重要,或者他们是一次性访问者,他们是第一次尽快将图像下载给他们的地方?您是否考虑过使用异步过程生成拇指,以免影响上传性能?
-
如果现有的缩略图不好,只需编写一个脚本,使用新规范重新创建它们。即使运行需要几个小时,它仍然比每次有人需要时重新采样图像要好。重新采样图像会像其他任何东西一样消耗您的服务器 CPU。
-
@MikeBrant 您可以通过缓存已渲染的图像轻松提高显示性能。我认为没有理由提前生成多个图像
标签: php thumbnails