我创建了一个网站,其中有一个Checkout按钮,每当客户点击Checkout按钮时,我需要以jpg格式创建4个图像文件并将其保存在服务器上。这些图像文件稍后将由网站管理员打印
现在其中一个图像文件的大小可能是3MB到4MB 而3张图像文件的其余部分大小将介于250KB到500KB之间
现在问题是第一个文件可能从3MB到4MB需要一些时间来创建,如5-10秒(这只是一次一个客户结账时)
但是当我用2个不同的设备同时执行Checkout时,时间范围增加到20秒,其中一个Checkout被处理了,而另一个等待或工作有点慢,所以总时间是20秒,否则时间其中一个Checkout是8秒,而另一个则是12秒
所以我担心如果10或20个客户同时执行Checkout,那么其中一些可能需要等待2或3分钟或者甚至更多
所以任何人都可以告诉我,如何提高PHP写入文件的速率或提高PHP执行速度或增加RAM可能有所帮助(目前为1GB)
注意: -
- >我正在使用IMagick创建图像文件,
- >也不能降低jpg质量,因为它将在150 dpi后打印机,
- >第一个图像文件是高清晰度照片,而其余3个仅填充纯色
- >它们的分辨率也很高,宽度和高度都在2800到4400像素之间
- >还有一个序列号将被添加到所有4个图像文件中,因此我无法降低其质量,否则在打印所有4个图像文件时可能看不到序列号
更新: 客户首先上传照片,然后他可以缩放图像,裁剪图像甚至移动它(用于裁剪目的)
因此,简而言之,他主要是裁剪上传的图像,当他点击结账按钮时,会创建新图像并添加序列号
我在大约1秒内检查了图像被处理或在内存(RAM)中创建的代码,但是当我在服务器本身添加用于在硬盘驱动器上写入图像的代码时,它需要花费一些时间。时间5-8秒如果没有同时请求,则10-15分钟,如果20-30同时请求
此外,我必须向他们展示成功或失败消息,但我只能在创建所有4个图像文件后显示成功消息,所以即使我使用ajax,即使那时我也无法显示成功消息图像已创建
如果我删除用于写入图像的代码,那么如果没有同时请求则时间减少到1秒,如果20-30同时请求则减少到5-10秒
所以我认为问题在于编写图像文件而不是处理或生成它
此外,当用户仍然裁剪图像时,我无法创建图像文件,否则会减慢裁剪过程。情况也不会改变,而是变得更糟,“同时结账时会发生什么”的问题将变为“同时裁剪时会发生什么”。所以这不是一个选择
此外,如果我说电子邮件将发送给您,告知您Checkout是否成功,我认为它看起来不会很专业。
答案 0 :(得分:0)
只是一些想法,也许其中一个可以帮助你完成手头的任务: