ユーザーがプロジェクトを作成してこのページで表示できる機能があります。リソース (pdf、img など) をインポートして、プロジェクトと共に保持することができます。だから今、私は、ユーザーが自分のすべてのものと、同じグループに属している人々を、きれいなリボンを zip ファイルにまとめてエクスポートできるようにする機能を作成したいと考えています。
現在、私は Archive:Zip を使用してファイルを事前に圧縮し、CRC32 チェックサムを保持し、これを毎日の cronjob として実行して、ユーザーの待ち時間を短縮しています。ただし、いずれかのファイルに変更がある場合は、すべてを再実行する必要があります。
私の最初のベンチマークでは、103MB のファイルの実行に最大 47 秒かかることがわかりました。このプロセスには、それらを XSL にリンクする XML の生成、画像のコピー、iframe の html などが含まれます。
テーブルまたはテキスト ファイルを作成して、すべてのファイルの CRC32 チェックサムまたは最終更新日を一時保存領域に保持し、ユーザーがエクスポートをクリックするたびにこのリストと比較し、新しいファイルがある場合は、キャッシュされた zip ファイルから同じファイルを削除し、新しいファイルを追加します。または、緩いファイルをすべて保持し、新しいファイルをコピーして置き換え、クリックするたびにアーカイブを実行します。
私の質問は次のとおりです。
- これは時期尚早または不適切な最適化手法と見なされますか?
- これを適切に最適化するにはどうすればよいですか?
- この種の最適化手法について学べる書籍やリソースはありますか?