-
Notifications
You must be signed in to change notification settings - Fork 653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
パフォーマンス改善(キャッシュ活用) #1638
Comments
Doctrineは Rails でよく言われるN+1問題の対応をすることもパフォーマンス上良いと思います。 |
DoctrineのN+1問題は、EMが優秀で 最大で N+1になりますが、同一性が保障されてるRecord(Entity)に関してはクエリ走りませんよ。 |
@shinichi-takahashi |
事前にJoin...? |
Joinすると無駄なクエリが減ります |
そりゃそうなんですけど、今回、私が担当していたときにはパフォーマンスを最大化するっていうより、アプリレイヤーでModel層を管理しやすくしようという意味合いでのORM採用だったんで、そのへんの方針どうなんかなーって感じですね |
- see k-yamamura/eccube3-performance@58c8c86 - 単なる array ファイルをキャッシュにしているだけなので、Yaml に加えて array でも config ファイルを記述できるようにしたら良い気がします
#1672 + #1695 の対応をしたもので travis-ci を実行してみました memcached を使用 redis を使用 デフォルト
|
この時間は何の時間の比較なのですか?ビルド時間? |
@nobuhiko PHPUnit の実行時間ですね |
index_dev.phpでアクセスした時に表示される、描画タイム?でどのくらい改善されたのか?どの位を目標にしているのかが気になるところです |
#1638 (comment) の計測方法に誤りがあったため修正しました。 おおむね40%弱程度の性能改善です。 |
間違った理解で書きそうなので、 @chihiro-adachi お願いします。。 |
キャッシュ管理画面でtwigディレクトリ以外も削除できるように修正 #1638
遅くなりましたが、以下にまとめました。 計測環境さくらのクラウド
デフォルトインストールされた状態で、トップページをApache Bench(v2.3)で計測
3.0.11は以下のキャッシュ設定を有効にしています
各バージョンでの比較以下、実行結果(Request Per Second)を記載します
3.0.10 -> 3.0.11では+50%~60%向上 各設定の比較各設定をそれぞれ単独で有効にした際の計測結果です。
※実行結果はRequest Per Secondの値
パフォーマンスが必要な際の環境
今後の課題
などなど、、 今回の対応で、50%~60%程度は向上できる見込ですが、地道なチューニングはまだ必要そうです。 設定方法キャッシュ等の設定方法は、以下に記載しています。あわせてご覧ください。 |
@chihiro-adachi
refs Symfony Performance |
結果だけみるとチューニングしている場所が違うんじゃないかという印象が・・・ |
Debug Toolbarみるとチューニングポイントがわかりますね。 @chihiro-adachi |
以下のコマンドでclass map生成していたつもりですが、
|
ボトルネックをまだ全て見切れていない可能性もありますね。 今回は、symfonyやdoctrineの一般的なチューニングはある程度検証できたかなと思ってます。 http://www.glic.co.jp/blog/archives/2627 課題事項にあげているような内容も、今後検証していきたいところです。 |
@tturu cのextensionもあるんですね |
で問題ないと思います。 |
@nobuhiko どの箇所のパフォーマンスが気になるのか是非知りたいです! |
@tanaka-ichiro |
@nobuhiko 最近EC-CUBE自体を初めて使っているのですが、パフォーマンスが悪いより良い事に越した事がないのでお聞きしました。 |
@tanaka-ichiro |
@tanaka-ichiro |
@nobuhiko 2系の方が確かに早かったのですがエラーページを返していたようで解決方法がわかりませんでした。 ブラウザでトップページにアクセスすると、 php7を使っても2系より結果が悪ければ2系にしようと思いましたが、 2系も初めて触ってみたのですが構成がすごく分かりづらいし、 3系はどのような構成になっているのかすごく分かりやすく初めてでもまだ読めました。 色々とありがとうございました。 |
パフォーマンス改善(キャッシュ活用)
概要
各種キャッシュを活用することでパフォーマンスの向上を行います。
対応内容
Symfony
HTTPキャッシュ ref #1673
ページの出力をキャッシュすることで、
以降のリクエストに対しては極力キャッシュを返却させることでパフォーマンスを向上させます。
Doctrine
Metadataキャッシュ
yamlファイルのパース結果をキャッシュすることで、
2回目以降のパース処理が不要になるためパフォーマンスが向上します。
Queryキャッシュ
SQLのクエリ生成結果をキャッシュすることで、
2回目以降のクエリ生成処理が不要になるためパフォーマンスが向上します。
その他
yamlファイルキャッシュ ref #696
yamlファイルのパース結果をキャッシュすることで、
2回目以降のパース処理が不要になるためパフォーマンスが向上します。
app/config以下のyamlファイルを対象にします。
キャッシュをクリア機能
上記の各種キャッシュをクリアするための機能を管理画面に追加。
その他
APC/APCuやOpechacheを利用できるサーバー環境であれば、よりパフォーマンスの向上を見込めます。
The text was updated successfully, but these errors were encountered: