【发布时间】:2012-02-22 04:54:04
【问题描述】:
我正在构建一个 Web 应用程序,允许用户上传高分辨率图像(大约 10mb)。上传后,它会创建上传的中等大小和缩略图大小的图像。似乎需要 100mb 以上的内存分配给 PHP 才能调整到中等图像的大小。我在这种可扩展性方面没有很多经验,网站会容易崩溃吗?我是否需要具有 16gb 内存的网络服务器来处理调整大小的负载?有替代方案吗?任何信息将不胜感激!
谢谢!
【问题讨论】:
我正在构建一个 Web 应用程序,允许用户上传高分辨率图像(大约 10mb)。上传后,它会创建上传的中等大小和缩略图大小的图像。似乎需要 100mb 以上的内存分配给 PHP 才能调整到中等图像的大小。我在这种可扩展性方面没有很多经验,网站会容易崩溃吗?我是否需要具有 16gb 内存的网络服务器来处理调整大小的负载?有替代方案吗?任何信息将不胜感激!
谢谢!
【问题讨论】:
您可以创建要调整大小的图像队列,并确保在任何给定时间仅调整 x 个图像的大小。 x 将取决于可用内存量。
如果您在上传图片后立即调整图片大小,您一定会遇到调整图片大小超出内存容量的情况,从而导致崩溃。
相反,在上传图片时,将它们添加到数据库中。然后有一个 PHP 脚本从数据库中获取 x 个图像,为这些图像中的每一个派生新进程以调整它们的大小。当进程向父进程报告完成时,父进程从队列中删除图像的条目并获取另一个。清洗,冲洗,重复。
【讨论】:
【讨论】: