チェックアウト ボタンがある Web サイトを作成しました。顧客がチェックアウト ボタンをクリックするたびに、jpg 形式で 4 つの画像ファイルを作成し、サーバーに保存する必要があります。これらの画像ファイルは、後でサイトの管理者によって印刷されます
画像ファイルの 1 つは 3MB から 4MB のサイズになる可能性がありますが、残りの 3 つの画像ファイルのサイズはほとんど 250KB から 500KB です。
ここでの問題は、3MB から 4MB の最初のファイルが作成されるまでに 5 ~ 10 秒ほどかかることです (これは、一度に 1 つの顧客がチェックアウトした場合のみです)。
しかし、2 つの異なるデバイスで同時チェックアウトを実行すると、時間枠が 20 秒に増加し、チェックアウトの 1 つが最初に処理され、もう 1 つが待機または少しゆっくりと処理されたため、合計時間は 20 秒でした。チェックアウトは 8 秒で、他のチェックアウトは 12 秒でした
したがって、10 人または 20 人の顧客が同時にチェックアウトを実行した場合、一部の顧客はおそらく 2、3 分、またはそれ以上待たなければならないのではないかと心配しています。
PHPがファイルを書き込む速度を上げる方法、またはPHPの実行速度を上げる方法、またはRAMを増やすと役立つ可能性があります(現在は1GBです)。
注:-
-> IMagick を使用して画像ファイルを作成しています。
-> 後で 150 dpi で印刷されるため、jpg の品質を下げることもできません。
-> 最初の画像ファイルは高解像度の写真ですが、残りの 3 つは単色のみで塗りつぶされてい
ます ->また、それらの解像度は、幅と高さの両方で 2800 から 4400 ピクセルの間のように高くなっています
->また、4 つの画像ファイルすべてに追加されるシリアル番号があるため、品質を下げることはできません。 4 つの画像ファイルすべての印刷中に番号が表示されない場合がある
更新: 顧客は最初に写真をアップロードし、次に画像の拡大縮小、トリミング、または移動を行うことができます (トリミングの目的で)。
要するに、彼は主にアップロードされた画像をトリミングしており、チェックアウト ボタンをクリックすると、新しい画像が作成され、シリアル番号が追加されます。
約 1 秒でイメージが処理されるか、メモリ (RAM) に作成されるコードを確認しましたが、サーバー自体のハード ドライブにイメージを書き込むためのコードを追加すると、しばらく時間がかかります 5-同時リクエストがない場合は 8 秒、同時リクエストが 20 ~ 30 件ある場合は 10 ~ 15 分
また、成功メッセージまたは失敗メッセージを表示する必要がありますが、4 つの画像ファイルがすべて作成された後にしか成功メッセージを表示できないため、ajax を使用しても、すべての画像が作成される前に成功メッセージを表示することはできません。作成した
ここでも、イメージを書き込むためのコードを削除すると、同時リクエストがない場合は時間が 1 秒に短縮され、20 ~ 30 の同時リクエストがある場合は 5 ~ 10 秒に短縮されます。
したがって、問題は画像ファイルを作成し、それを処理または生成しないことにあると思います
また、ユーザーがまだ画像をトリミングしている間は画像ファイルを作成できません。そうしないと、トリミング プロセスが遅くなります。また、状況は変わらずむしろ悪化し、「同時精算したらどうなるか」から「同時収穫したらどうなるか」へと問題が変わります。したがって、これはオプションではありません
また、チェックアウトが成功したかどうかを知らせる電子メールが送信されると言ったら、プロフェッショナルに見えないと思います。