/ / phpのGDライブラリを使用して複数のサムネイルを作成したいのですが、その場で作成する方がよいですか、それとも物理的に作成する方が良いですか? - php、サムネイル

私はPHPでGDライブラリを使用して複数のサムネイルを作成したいと思います。 - PHP、サムネイル

GDを使って複数のサムネイルを作成したいPHPのライブラリ、および私はすでにこれを行うためのスクリプトを持っている、質問は私にとって何が良いのかという質問です..その場でサムネイルを作成する方が良いですか?または私が親指が欲しいたびに私のサーバー上に物理ファイルを作成します?なぜ?

時間とストレージ容量、その他両方の欠点を考慮してください。

回答:

回答№1は1

どちらも/両方とも - あなたがそれらを必要とするまでサムネイルを生成しないでください - しかしあなたが生成するファイルを保存してください。

そうすれば、必要な作業量を最小限に抑え、自己修復システムを構築できます。

C.


回答№2の場合は3

あなたがサムネイルを作成するときカップルによります(私がやろうとしていることだが)多くの要因があるが、これは本当に高価な操作であるため、(あなたが二度とそれを使用しない限り)このようなものの出力を破棄してはいけない。

とにかく「サムネイルをいつ生成するか」についてのあなたの2つの主な選択は以下の通りです:

  1. それが最初に要求されたとき。 これは一般的であり、決して使用されないサムネイルを生成してはいけないことを意味しますが、サムネイルが生成されるPHPプロセスでサーバーがいっぱいになる可能性がある初めてのサムネイルでいっぱいになる場合を意味します。

    私はSorl + Djangoでも同様の問題を抱えていました。アップロード後の最初のいくつかのリクエストについて、リクエストごとに100個以上のサムネイルが生成されていたため、基本的にサーバー全体が20分間ハングしました。良くない。

  2. アップロード時に必要なサムネイルをすべて生成します。 アップロードには長い時間がかかるので、処理をかなり多く分解します。あなたはそれをプロセス外に引っ張ることもできます(つまり、アップロードを処理するために別のスクリプトを使用します - おそらくPHPではできません)。

    明らかな欠点はあなたがディスクを使い果たしていることですそうでなければ使い切る必要がないかもしれないスペース...しかし、あなたが "何十万ものサムネイルについて話しているのでなければ、未使用のサムネイルのごく一部がおそらく破綻しない"。

    もちろん、ディスク容量が問題になる場合は、サムネイルを処理すると同時にサムネイルをCDNにプッシュアップするという議論があるかもしれません。

サムネイルを保存するときの注意事項サムネイルのサイズを変更したい場合や、2つの小さな変形が必要な場合はごく普通のことです。 image.jpg200×200バージョンは image-200x200.jpg.


回答№3の場合は1

GDは本当にリソースを大量に消費するので、代わりにImageMagickを使用できるかどうかを検討する必要があります(これもより明確な構文です)。

あなたは間違いなくキャッシュするほうがよいでしょう最初の実行後にサムネイルを作成し(GDとImageMagickのどちらを実行しているかは関係ありません)、それらをキャッシュから提供します。記憶域が心配な場合は、時々キャッシュから古いファイルを消去してください。


回答№4の場合は0

結果を常にキャッシュ(=ディスクに書き出し)します。GDオペレーション毎回オンザフライで実行するには、プロセッサ時間とメモリの両方に関してコストがかかりすぎます。これはあなたが持っているより多くの訪問者/ヒットがますます本当になります。