SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
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を
 試してみてください

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

Más contenido relacionado

Más de 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
 
Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1Hidenori Goto
 
Symfony2 introduction
Symfony2 introductionSymfony2 introduction
Symfony2 introductionHidenori Goto
 
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 CodeHidenori Goto
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話Hidenori Goto
 
HTC Desireについて
HTC DesireについてHTC Desireについて
HTC DesireについてHidenori Goto
 
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測Hidenori Goto
 
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使うTwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使うHidenori Goto
 
TwitterのStreaming APIについて
TwitterのStreaming APIについてTwitterのStreaming APIについて
TwitterのStreaming APIについてHidenori Goto
 
SubversionとSugarsync
SubversionとSugarsyncSubversionとSugarsync
SubversionとSugarsyncHidenori Goto
 
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介Hidenori Goto
 

Más de 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
 

Último

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 

Último (7)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 

Symfony2のHTTP Cache (Reverse Proxy)