HatenaPocketCakephpでWebサービスを作っているのですが、最初の頃は速かったのにいつの日か気づいた時には、激重になっていました。69そこまで悪い数字ではない(特にPC)けれど、体感でのスピードは激重。5,6秒くらいかかってる気がする。これじゃユーザーすぐ離脱するぜ。いうことで、Cakephpのパフォーマンス向上施策をしました。先に結果から書いておくと、Mysqlのクエリ発行回数が多すぎた。DBにindexをきちんと結果的には、mysqlのクエリが多すぎた事が一番大きな原因でした。僕の場合footerに沢山の情報を表示するためにAppControllerで大量にfindしてControllerで読み込んで表示させてたんですね。?>を計測したいビューに貼付けて実行すると、、、そのページで読んでるクエリの数が70もありました。なり劇的にスピードがアップしました。mysqlクエリが一番大きかった気がしますが、まぁ色々やった結果だと思うので、他にもやった事をメモっておきます。パフォーマンス向上ためには、色んな因数があると思うんですが、コード的側面:Cakephp側インフラ的側面:mysql、OS、Apacheなどと分けて2つにわけて考えました。計測には、BenchmarkComponentで処理速度を計測します。Cakephp側でやったことfindでは、必要でない限り、firstを使う。必要のないデータを取ってきても単に無駄なだけなので。allの場合でもなるべくlimitを指定する。これまた上記と同じで、無駄なデータはそもそも取得しない。$html->linkを消すこれは、サイトに書いてあったんですが、Htmlヘルパーのリンクメソッドが実は激重らしいので、これを全て削除、絶対パスに書き換える。cssをcompressedSassでCSSを管理してるんですが、それ全部圧縮。compressedとすれば、自動でやってくれます。64Mを追加クエリキャッスサイズに関する記述を追加。クエリキャッシュには、SELECTクエリのテキストとクライアントに送られた結果が格納され、以後同じクエリを受け取った際、クエリの解析と実行を行わず、クエリキャッシュから結果を取り出します。同じクエリが何度も実行される環境下では、クエリキャッシュを使う方が効率的で、かつパフォーマンスを向上させることができます。クエリキャッシュサイズを設定すると、同じクエリを受け取った場合、キャッシュからそのデータを取り出せる様にするってことですね。いちいちmysqlからデータとってこなくても良いので、そりゃ速くなる。[参考URL]http://www.webcreator-net.com/tips_memo/server/20120705220008.htmlhttp://dream-web.info/2014/01/28/2993/CentOSチューンアップまずはメモリを異常に使用していないかチェック。freeコマンドで、メモリ使用量をチェックします。2092112CentOSは利用しない機能を起動させている事が多いので、以下のコマンドで停止させます。offこれで不要なデーモンをストップできました。OSを再起動すると設定が適用されます。2097144メモリの使用量めっちゃ減った。メモリの使用量は減ったけど、体感ではあまり変化を感じませんでした。0.36となり、ほぼストレスなく見れる様になりました。サイト速いとやっぱ良いですね。カウチサーフィンの使い方どーも。@hiroki_tkgです。...海外でヒッチハイクする方法どうも、@hiroki_tkgです。いまはドイツの首都ベルリンにいます。コメントをキャンセルメールアドレスが公開されることはありません。(4)プログラミングスクールの口コミ・比較サイト「コードラン」運営してます。free".TOPへ。