SlideShare a Scribd company logo
1 of 63
Download to read offline
Symfony2
HTTPキャッシュ
   @hidenorigoto




         1
自己紹介
• @hidenorigoto
• 岐阜
• 日本Symfonyユーザー会
• symfony 1.4本
• 温泉ツアー
  ドキュメント翻訳
  勉強会他
                  2
今日の話の概要
http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
これが
http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
これくらいにはなります!




http://d.hatena.ne.jp/cakephper/
       20110802/1312275110
本日の内容




  5
本日の内容
1.Symfony2でHTTP Cacheを使う方法




               5
本日の内容
1.Symfony2でHTTP Cacheを使う方法
2.HTTP Cacheのパフォーマンス




               5
本日の内容
1.Symfony2でHTTP Cacheを使う方法
2.HTTP Cacheのパフォーマンス
3.まとめ




               5
本日の内容
1.Symfony2でHTTP Cacheを使う方法
2.HTTP Cacheのパフォーマンス
3.まとめ
4.おまけ(時間が余った時)




               5
翻訳してます
翻訳してます
• Symfony2公式ドキュメント(日本語訳)
 http://docs.symfony.gr.jp/symfony2/
 book/http_cache.html
翻訳してます
• Symfony2公式ドキュメント(日本語訳)
 http://docs.symfony.gr.jp/symfony2/
 book/http_cache.html

• ↑ここ読めばおk
翻訳してます
• Symfony2公式ドキュメント(日本語訳)
 http://docs.symfony.gr.jp/symfony2/
 book/http_cache.html

• ↑ここ読めばおk
• 力尽きたので
 途中までしか訳されていません
 (明日続きをやるかも)
1
     Symfony2で
HTTP Cacheを使う方法
(リバースプロキシキャッシュ)




       7
とっても
カンタン!
Symfony2には
 リバースプロキシが
組み込まれています!
HTTP Cacheを使う方法
(リバースプロキシ)
HTTP Cacheを使う方法
 (リバースプロキシ)
1.Cache Kernelを有効にする
HTTP Cacheを使う方法
 (リバースプロキシ)
1.Cache Kernelを有効にする
HTTP Cacheを使う方法
 (リバースプロキシ)
1.Cache Kernelを有効にする




             コメント解除
HTTP Cacheを使う方法
 (リバースプロキシ)
1.Cache Kernelを有効にする

2.キャッシュを有効にするコントローラで
Responseにキャッシュプロパティをセット
HTTP Cacheを使う方法
 (リバースプロキシ)
1.Cache Kernelを有効にする

2.キャッシュを有効にするコントローラで
Responseにキャッシュプロパティをセット
これだけで、
組み込みリバースプロキシの
共有キャッシュが動作します
Cache   フレーム   コント
Kernel    ワーク
                ローラ
Cache   フレーム   コント
        Kernel    ワーク
                        ローラ
リクエスト
Cache    フレーム   コント
        Kernel     ワーク
                         ローラ
リクエスト

                 レスポンス
Cache    フレーム   コント
        Kernel     ワーク
                         ローラ
リクエスト

                 レスポンス
Cache    フレーム   コント
        Kernel     ワーク
                         ローラ
リクエスト

                 レスポンス

                 キャッシュ
Cache    フレーム   コント
        Kernel     ワーク
                         ローラ
リクエスト

                 レスポンス

                 キャッシュ
リクエスト
Cache    フレーム   コント
        Kernel     ワーク
                         ローラ
リクエスト

                 レスポンス

                 キャッシュ
リクエスト
Cache    フレーム   コント
        Kernel     ワーク
                         ローラ
リクエスト

                 レスポンス

                 キャッシュ
リクエスト



レスポンス
(キャッシュから)
2
 HTTP Cacheの
パフォーマンス



     13
パフォーマンス比較で
使われたアプリケー
ションを
手元MacBook Airでab
キャッシュなし
キャッシュなし




46.24 #/sec
キャッシュあり
キャッシュあり




180.09 #/sec
超特定ケースですが

   4倍
3
まとめ




 18
キャッシュの適用範囲が広がる
キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい
キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい
• 短時間のキャッシュでもメリットがある
キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい
• 短時間のキャッシュでもメリットがある
• ページ片の独立キャッシュ(ESI)
キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい
• 短時間のキャッシュでもメリットがある
• ページ片の独立キャッシュ(ESI)

   HTTPキャッシュを
   積極的に使おう!
目指すところ
目指すところ

フレームワークの仕組みの中だけで、これま
で以上にアプリケーションのパフォーマンス
を高められる
目指すところ

フレームワークの仕組みの中だけで、これま
で以上にアプリケーションのパフォーマンス
を高められる


     cleanなコード
目指すところ

フレームワークの仕組みの中だけで、これま
で以上にアプリケーションのパフォーマンス
を高められる


     cleanなコード
  cleanなモデルを維持
4
おまけ




 21
Varnishを使う
Varnishを使う
• Varnish
  (リバースプロキシ)
Varnishを使う
• Varnish
  (リバースプロキシ)
Varnishを使う
• Varnish
  (リバースプロキシ)




• ESIにも対応
Varnishを使う
• Varnish
  (リバースプロキシ)




• ESIにも対応
• 公式ドキュメント
 How to use Varnish to speedup my Website
 http://symfony.com/doc/current/cookbook/
5
おまけ(2)




  23
Pinocoが気になった方へ
• @tanakahisateru さんが開発
• ビューにPHPTALを採用
• デザイナーフレンドリー
• https://github.com/tanakahisateru/
  pinoco
是非Symfony2を
 試してみてください

     ご清聴
ありがとうございました!

More Related Content

More from Hidenori Goto

Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
Hidenori Goto
 
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Hidenori Goto
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
Hidenori Goto
 
HTC Desireについて
HTC DesireについてHTC Desireについて
HTC Desireについて
Hidenori Goto
 
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Hidenori Goto
 

More from Hidenori Goto (20)

Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
 
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
 
Symfony2 workshop-2
Symfony2 workshop-2Symfony2 workshop-2
Symfony2 workshop-2
 
Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1
 
Symfony2 workshop-1
Symfony2 workshop-1Symfony2 workshop-1
Symfony2 workshop-1
 
Symfony2 introduction
Symfony2 introductionSymfony2 introduction
Symfony2 introduction
 
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeSymfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
 
Orm Designer
Orm DesignerOrm Designer
Orm Designer
 
Symfony tdd
Symfony tddSymfony tdd
Symfony tdd
 
Symfony2 caching
Symfony2 cachingSymfony2 caching
Symfony2 caching
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
 
HTC Desireについて
HTC DesireについてHTC Desireについて
HTC Desireについて
 
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
 
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使うTwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
 
TwitterのStreaming APIについて
TwitterのStreaming APIについてTwitterのStreaming APIについて
TwitterのStreaming APIについて
 
SubversionとSugarsync
SubversionとSugarsyncSubversionとSugarsync
SubversionとSugarsync
 
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介
 
Jimdoの紹介
Jimdoの紹介Jimdoの紹介
Jimdoの紹介
 
EclipseでPHP開発
EclipseでPHP開発EclipseでPHP開発
EclipseでPHP開発
 
Tajimiit200905
Tajimiit200905Tajimiit200905
Tajimiit200905
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
 

Recently uploaded (12)

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 

Symfony2のHTTP Cache (Reverse Proxy)