0


0

ページの読み込みに時間がかかりすぎます! ページの読み込み時間を短縮するにはどうすればよいですか?

こんにちは皆さん、アプリケーションをテストしています。 firebugsを使用すると、アプリケーションが非常に遅くなり、速度を上げる必要があることがわかりました。

700 KBを超える大きなJavaScriptファイルが1つあります。これにはすべてのjsライブラリが含まれていますが、不気味な部分は、コード自体の実行に20〜40秒かかります。 今のことは、私のコードはzendフレームワークに基づいており、メールフォルダーから電子メールを取得するということです-しかし、これは遅すぎます。 どうすればスピードアップできますか-コードのどの部分が犠牲になっているのかを知るにはどうすればよいですか?

JavaScriptはiissueの一部ですが、同時に別の問題は、特に私が話しているページが電子メールの受信トレイを読むことです。 ウェブメールインターフェースの最前線で、データベース呼び出しが行われていますが、タイミングは無視できるようです。 microtimeを使用してメッセージとコードのスニペットを取得する時間を計算した次の点を見てください。

コードの各スニペットを実行するのに時間をかけ、レポートでラベルを添付しました。これが結果です。最初の数字はマイクロ秒単位の時間です。時間がかかりました。 どのスニペットを監視する必要があります。 ラベルが繰り返されているものはループなので、メールクライアントであり、各メッセージはループとして取得されます。

[Log Entry 2010-07-10T10:49:44+00:00] 0.000446:::::01

[Log Entry 2010-07-10T10:49:45+00:00] -0.100127:::::02

[Log Entry 2010-07-10T10:49:46+00:00] 0.191738:::::get message

[Log Entry 2010-07-10T10:49:46+00:00] 2.0E-5:::::get headers

[Log Entry 2010-07-10T10:49:46+00:00] 0.000776:::::contacts check

[Log Entry 2010-07-10T10:49:46+00:00] 0.174134:::::non multipart

[Log Entry 2010-07-10T10:49:47+00:00] -0.842978:::::get message

[Log Entry 2010-07-10T10:49:47+00:00] 1.2E-5:::::get headers

[Log Entry 2010-07-10T10:49:47+00:00] 0.000834:::::contacts check

[Log Entry 2010-07-10T10:49:47+00:00] 0.179016:::::non multipart

[Log Entry 2010-07-10T10:49:48+00:00] -0.851685:::::get message

[Log Entry 2010-07-10T10:49:48+00:00] 1.8E-5:::::get headers

[Log Entry 2010-07-10T10:49:48+00:00] 0.001334:::::contacts check

[Log Entry 2010-07-10T10:49:49+00:00] -0.587962:::::html part message

[Log Entry 2010-07-10T10:49:49+00:00] 0.138799:::::get message

[Log Entry 2010-07-10T10:49:49+00:00] 1.9E-5:::::get headers

[Log Entry 2010-07-10T10:49:49+00:00] 0.002155:::::contacts check

[Log Entry 2010-07-10T10:49:49+00:00] 0.181675:::::non multipart

[Log Entry 2010-07-10T10:49:50+00:00] -0.856142:::::get message

[Log Entry 2010-07-10T10:49:50+00:00] 1.6E-5:::::get headers

[Log Entry 2010-07-10T10:49:50+00:00] 0.000803:::::contacts check

[Log Entry 2010-07-10T10:49:50+00:00] 0.178046:::::non multipart

[Log Entry 2010-07-10T10:49:50+00:00] 0.141544:::::get message

[Log Entry 2010-07-10T10:49:50+00:00] 1.8E-5:::::get headers

[Log Entry 2010-07-10T10:49:51+00:00] 0.001167:::::contacts check

[Log Entry 2010-07-10T10:49:52+00:00] -0.188653:::::html part message

[Log Entry 2010-07-10T10:49:52+00:00] 0.148198:::::get message

[Log Entry 2010-07-10T10:49:52+00:00] 2.0E-5:::::get headers

[Log Entry 2010-07-10T10:49:53+00:00] 0.00284:::::contacts check

[Log Entry 2010-07-10T10:49:53+00:00] 0.336415:::::html part message

[Log Entry 2010-07-10T10:49:53+00:00] 0.140683:::::get message

[Log Entry 2010-07-10T10:49:53+00:00] 2.0E-5:::::get headers

[Log Entry 2010-07-10T10:49:54+00:00] 0.003539:::::contacts check

[Log Entry 2010-07-10T10:49:54+00:00] 0.311735:::::html part message

[Log Entry 2010-07-10T10:49:54+00:00] 0.143097:::::get message

[Log Entry 2010-07-10T10:49:54+00:00] 1.9E-5:::::get headers

[Log Entry 2010-07-10T10:49:55+00:00] 0.001392:::::contacts check

[Log Entry 2010-07-10T10:49:55+00:00] 0.313101:::::html part message

[Log Entry 2010-07-10T10:49:55+00:00] 0.146926:::::get message

[Log Entry 2010-07-10T10:49:55+00:00] 1.7E-5:::::get headers

[Log Entry 2010-07-10T10:49:55+00:00] 0.000743:::::contacts check

[Log Entry 2010-07-10T10:49:56+00:00] 0.173081:::::non multipart

5 Answer


1


プロファイリングについては、https://stackoverflow.com/questions/855126/what-is-the-best-way-to-profile-javascript-execution [javascript実行のプロファイルを作成する最良の方法は?]またはhttps:/を試すことができます。 /developer.mozilla.org/en/Venkman(詳しくはhttp://www.hacksrus.com/~ginda/venkman/faq/venkman-faq.html#profiler [こちら]をご覧ください)。

JSが大量のデータを処理していない限り、Webサーバー(AJAXなど)に多くのAPIコールバックを行うことに問題があると思います。 これは、たとえば、現在単一の情報単位を取得して返すようにしている場合、リストを取得して返すAPI関数を作成することで、簡単に修正できるはずです。 getText(1,2,5,6) vs. getText(1)、getText(2)、…​

または、サーバー自体のコードが壊れているため、実際にページを構築する前に応答が必要なJSクエリに応答するのに20秒以上かかるのはサーバーです…​


0


XDebugと\ {K、Win} Cachegrindを使用して、プロファイリングを行い、コードの遅い部分を見つけることができます。 KCachegrindはLinux上で実行され、Wincachegrindよりも優れています。


0


一般に、不適切に記述されたSQLクエリ、またはループの下で繰り返されるSQLクエリは、Webサイトの速度を低下させます。 700KBのjavascriptファイルはそれほど遅くなりません。 実行に時間がかかりすぎるクエリを見つけようとするか、ループで実行されているクエリがある場合は、ループなしで同じ結果を取得する他の方法を見つけてください。


0


問題が質問からどこにあるのかを知るのは難しいですが、それ自体がロードされている場合、Firebugのhttps://addons.mozilla.org/en-US/firefox/addon/5369/[YSlow]をインストールできます。

これにより、ロード時にサイトが分析されます。 次に、それを評価し、問題のある領域を特定します-状況の改善に役立つ改善(多くの場合、簡単に得られる)を推奨します。 これは、実際のWebページリソースの問題を特定するのに役立ちます。


0


ブラウザに配信されるコンテンツに関連するいくつかの問題を検出するには、Mozilla FirefoxにYSlowプラグインをインストールします。 HTTPリクエスト数、圧縮、動的CSSなど、さまざまなディメンションに関するいくつかのグレードを取得します。