以前はうまく動作していたレポート生成PHPプログラムがあります。私はプログラムで2つのサードパーティのライブラリを使用しています:Googleの画像チャートライブラリ(私はURLで値を提供する場合は画像を返す)とtcpdf(PDF生成用)。私はクエリにmysqliではなくmysqlを使用しています。このページには多くのクエリとループがあります。TCPDFは40ページのpdfファイルを生成するのに10分かかります
レポートを生成するのに3分もかからなかった前に、ファイル生成が完了すると完了したメッセージを返すレポートを生成するためにajax呼び出しを使用しています。このプログラムは、pdfファイルをフォルダに保存し、同じ名前のリンクを使用してファイルをダウンロードします。
最近、正しく生成されていないことを確認しました。
エラーはTCPDFが画像を取得できませんでした。これは、画像を正しく返さないGoogleグラフライブラリが原因です。私はブラウザでグラフのURLにアクセスすると、問題なくイメージが表示されますが、イメージファイルの中にイメージファイルを置いても表示されません。そこで私はfile_get_contents、file_put_contentsのような関数を使ってファイルをフォルダに保存し、それをimage srcにリンクさせることにしました。この部分は正常に動作していますが、画像が見えます。
しかし、問題は、ローカル環境であっても、レポートを生成するのに多くの時間がかかることです。私は、チャートの作成なしにレポートを生成しようとしましたが、その時間がかかることもありました。その間には25分であり、今は40ページのPDFファイルを生成するのに10分近くかかっています。
なぜ私は本当にその時間がかかるのか分かりません。これのすべてはうまくいきませんでした。変更されたのは、Google画像の図書館のライブラリだけでしたが、今でも(その部分をコメントしてチェックしていても)その時間がかかることさえあります。
これをスピードアップするにはどうすればよいですか?遅いプログラムの部分を確認する方法はありますか?
試したxdebugですが、出力ファイルが400 MB以上で、webgrindが処理できません。
助けてください。
この点で私たちにはあまりお答えできませんでした。詳しくは、編集を検討してください。 –
今すぐご確認ください。ありがとうございました。 –