Suche senden
Hochladen
Zend OPcacheの速さの秘密を探る
•
47 gefällt mir
•
39,048 views
Yoshio Hanawa
Folgen
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 32
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Writing php extensions in golang
Writing php extensions in golang
do_aki
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
JIT のコードを読んでみた
JIT のコードを読んでみた
y-uti
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
do_aki
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
Quick tour of PHP from inside
Quick tour of PHP from inside
julien pauli
Empfohlen
Writing php extensions in golang
Writing php extensions in golang
do_aki
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
JIT のコードを読んでみた
JIT のコードを読んでみた
y-uti
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
do_aki
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
Quick tour of PHP from inside
Quick tour of PHP from inside
julien pauli
OPcache の最適化器の今
OPcache の最適化器の今
y-uti
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
動的なILの生成と編集
動的なILの生成と編集
terurou
Php and threads ZTS
Php and threads ZTS
julien pauli
SystemC Tutorial
SystemC Tutorial
kocha2012
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
Native Memory Tracking
Native Memory Tracking
Takahiro YAMADA
Phpをいじり倒す10の方法
Phpをいじり倒す10の方法
Moriyoshi Koizumi
php-src の歩き方
php-src の歩き方
do_aki
PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
Masahito Zembutsu
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
Kent Ohashi
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
CQRS+ESをAkka Persistenceを使って実装してみる。
CQRS+ESをAkka Persistenceを使って実装してみる。
Matsushita Satoshi
言語の設計判断
言語の設計判断
nishio
Return Oriented Programming
Return Oriented Programming
sounakano
顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたい
Michitaka Yumoto
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
Michitaka Yumoto
Weitere ähnliche Inhalte
Was ist angesagt?
OPcache の最適化器の今
OPcache の最適化器の今
y-uti
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
動的なILの生成と編集
動的なILの生成と編集
terurou
Php and threads ZTS
Php and threads ZTS
julien pauli
SystemC Tutorial
SystemC Tutorial
kocha2012
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
Native Memory Tracking
Native Memory Tracking
Takahiro YAMADA
Phpをいじり倒す10の方法
Phpをいじり倒す10の方法
Moriyoshi Koizumi
php-src の歩き方
php-src の歩き方
do_aki
PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
Masahito Zembutsu
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
Kent Ohashi
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
CQRS+ESをAkka Persistenceを使って実装してみる。
CQRS+ESをAkka Persistenceを使って実装してみる。
Matsushita Satoshi
言語の設計判断
言語の設計判断
nishio
Return Oriented Programming
Return Oriented Programming
sounakano
Was ist angesagt?
(20)
OPcache の最適化器の今
OPcache の最適化器の今
PHP AST 徹底解説
PHP AST 徹底解説
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
動的なILの生成と編集
動的なILの生成と編集
Php and threads ZTS
Php and threads ZTS
SystemC Tutorial
SystemC Tutorial
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Native Memory Tracking
Native Memory Tracking
Phpをいじり倒す10の方法
Phpをいじり倒す10の方法
php-src の歩き方
php-src の歩き方
PHPとシグナル、その裏側
PHPとシグナル、その裏側
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
CQRS+ESをAkka Persistenceを使って実装してみる。
CQRS+ESをAkka Persistenceを使って実装してみる。
言語の設計判断
言語の設計判断
Return Oriented Programming
Return Oriented Programming
Andere mochten auch
顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたい
Michitaka Yumoto
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
Michitaka Yumoto
PHP 5.5 Zend OPcache
PHP 5.5 Zend OPcache
Masashi Shinbara
PHPバージョン別応答速度比較
PHPバージョン別応答速度比較
Takayuki Saito
Zend framework 3 と zend expressive の話
Zend framework 3 と zend expressive の話
Satoru Yoshida
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Yoshio Hanawa
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
エンジニアのための経営学
エンジニアのための経営学
Michitaka Yumoto
「納品のない受託開発」とエンジニアの働きかたのこれから
「納品のない受託開発」とエンジニアの働きかたのこれから
Yoshihito Kuranuki
Bpstudy#92 エンジニアの経営学
Bpstudy#92 エンジニアの経営学
Michitaka Yumoto
エンジニアがとるべき8つの行動
エンジニアがとるべき8つの行動
Hiroshi Ogino
Yokohama North Meetup #2
Yokohama North Meetup #2
Kazuaki KURIU
Organizácia školského roka 2014/2015 na ZŠ Vazovova 4 Bratislava
Organizácia školského roka 2014/2015 na ZŠ Vazovova 4 Bratislava
PROMOSPRAVY.sk
"地方エンジニア" という考え方はすでに終わっている
"地方エンジニア" という考え方はすでに終わっている
Hiroshi Ogino
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
Yoshio Hanawa
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
Andere mochten auch
(20)
顧問エンジニアというロールを作りたい
顧問エンジニアというロールを作りたい
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
PHP 5.5 Zend OPcache
PHP 5.5 Zend OPcache
PHPバージョン別応答速度比較
PHPバージョン別応答速度比較
Zend framework 3 と zend expressive の話
Zend framework 3 と zend expressive の話
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
PHP7はなぜ速いのか
PHP7はなぜ速いのか
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
エンジニアのための経営学
エンジニアのための経営学
「納品のない受託開発」とエンジニアの働きかたのこれから
「納品のない受託開発」とエンジニアの働きかたのこれから
Bpstudy#92 エンジニアの経営学
Bpstudy#92 エンジニアの経営学
エンジニアがとるべき8つの行動
エンジニアがとるべき8つの行動
Yokohama North Meetup #2
Yokohama North Meetup #2
Organizácia školského roka 2014/2015 na ZŠ Vazovova 4 Bratislava
Organizácia školského roka 2014/2015 na ZŠ Vazovova 4 Bratislava
"地方エンジニア" という考え方はすでに終わっている
"地方エンジニア" という考え方はすでに終わっている
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
zval をダイエットしてみた
zval をダイエットしてみた
PHPNGの動向
PHPNGの動向
Ähnlich wie Zend OPcacheの速さの秘密を探る
今すぐ使えるPHP開発のあれこれ
今すぐ使えるPHP開発のあれこれ
Yuya Kikukawa
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
k-motoyan
App Engine と いまどきのPHP
App Engine と いまどきのPHP
sokamo1975
20110910 闇鍋的php魔改造
20110910 闇鍋的php魔改造
do_aki
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
Yoshio Hanawa
PHP5技術者認定初級試験を受験しました
PHP5技術者認定初級試験を受験しました
hajikami
2009 PHP初心者
2009 PHP初心者
Hideo Kashioka
簡単便利!Laravel Homestead
簡単便利!Laravel Homestead
Shota Inoue
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
horike37
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
shinjiigarashi
Osc2014
Osc2014
Soudai Sone
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
Shohei Tai
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
PSGIへの誘い
PSGIへの誘い
azuma satoshi
いよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こう
Tsutomu Chikuba
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
WCO2012「PHP教室」
WCO2012「PHP教室」
Takuma Morikawa
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
Takashi Uemura
初心者向けPHPソースコード診断
初心者向けPHPソースコード診断
kitoku_magic
「初めてのphp」読書会
「初めてのphp」読書会
良太 増子
Ähnlich wie Zend OPcacheの速さの秘密を探る
(20)
今すぐ使えるPHP開発のあれこれ
今すぐ使えるPHP開発のあれこれ
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
App Engine と いまどきのPHP
App Engine と いまどきのPHP
20110910 闇鍋的php魔改造
20110910 闇鍋的php魔改造
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
PHP5技術者認定初級試験を受験しました
PHP5技術者認定初級試験を受験しました
2009 PHP初心者
2009 PHP初心者
簡単便利!Laravel Homestead
簡単便利!Laravel Homestead
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
Osc2014
Osc2014
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
PSGIへの誘い
PSGIへの誘い
いよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こう
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
WCO2012「PHP教室」
WCO2012「PHP教室」
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
初心者向けPHPソースコード診断
初心者向けPHPソースコード診断
「初めてのphp」読書会
「初めてのphp」読書会
Mehr von Yoshio Hanawa
自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Yoshio Hanawa
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
ぼくのかんがえる さいきょうの銀行振込
ぼくのかんがえる さいきょうの銀行振込
Yoshio Hanawa
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
Yoshio Hanawa
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
Yoshio Hanawa
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
Yoshio Hanawa
GitHubからお金をもらった話
GitHubからお金をもらった話
Yoshio Hanawa
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
Yoshio Hanawa
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Yoshio Hanawa
Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
PHPの正規表現と最長一致
PHPの正規表現と最長一致
Yoshio Hanawa
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
Yoshio Hanawa
PHPエクステンションの開発tips
PHPエクステンションの開発tips
Yoshio Hanawa
PHPで時間旅行をする方法
PHPで時間旅行をする方法
Yoshio Hanawa
Mehr von Yoshio Hanawa
(18)
自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Zend VMにおける例外の実装
ぼくのかんがえる さいきょうの銀行振込
ぼくのかんがえる さいきょうの銀行振込
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
GitHubからお金をもらった話
GitHubからお金をもらった話
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Laungage Update PHP編
Laungage Update PHP編
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
PHPの正規表現と最長一致
PHPの正規表現と最長一致
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
PHPエクステンションの開発tips
PHPエクステンションの開発tips
PHPで時間旅行をする方法
PHPで時間旅行をする方法
Zend OPcacheの速さの秘密を探る
1.
Zend OPcacheの 速さの秘密を探る hnw PHPカンファレンス2013(2013/09/14) 発表資料 13年9月14日土曜日
2.
自己紹介 @hnw / id:hnw 勤務先:KLab株式会社 社内PHP案件の助っ人など(性能改善とか)やってます カレーとバグが大好物 おいしい情報をお待ちしています 13年9月14日土曜日
3.
今日おはなしすること Zend OPcache とは 最適化フェーズの内側 安定性をどう判断するか 13年9月14日土曜日
4.
Zend OPcache とは 最適化フェーズの内側 安定性をどう判断するか 13年9月14日土曜日
5.
Zend OPcache とは PHPのopcodeキャッシュ&最適化エクステンション PHP
5.5に標準添付、APCの代替として期待されている PHP 5.2から5.5に対応 前身: Zend社の商用製品(Zend Optimizer) 2013年2月 Open Source化、名前も変わった 13年9月14日土曜日
6.
APC との違い KVS 機能が無い APCu
などを併用しましょう バイトコードの最適化を行う これが速さの秘密 13年9月14日土曜日
7.
Zend OPcache の性能 ベンチマークテスト Opcode
Cache Benchmarks 全般的にAPCより速い 仕組み上も有利 APCより遅くなる状況が珍しい 13年9月14日土曜日
8.
OPcacheが行う 「最適化」って何? 13年9月14日土曜日
9.
素のPHPの処理 PHPコードをopcodeに変換してからVM実行している Parser Lexer OpcodeCompiler ZendVM PHP token AST opcode 13年9月14日土曜日
10.
素のPHPの処理 PHPコードをopcodeに変換してからVM実行している Parser Lexer OpcodeCompiler ZendVM PHP token AST opcode 13年9月14日土曜日
11.
opcodeの例 参考:Opcode Descriptions and
Examples <?php if (false) { echo ”*”; } 13年9月14日土曜日
12.
素のPHPの処理 PHPコードをopcodeに変換してからVM実行している Parser Lexer OpcodeCompiler ZendVM PHP token AST opcode 13年9月14日土曜日
13.
Zend VM概要 最大4オペランドのレジスタマシン レジスタ数は無限個 各レジスタの変数型は実行時まで決定できない 命令数 146(PHP
5.5.3時点) 13年9月14日土曜日
14.
PHP+APCの処理 opcodeキャッシュにより、PHPの解釈をスキップできる Parser Lexer OpcodeCompiler ZendVM PHP token AST opcode OpcodeCache opcode 13年9月14日土曜日
15.
PHP+OPcacheの処理 opcodeレベルの最適化処理を行い、キャッシュする Parser Lexer OpcodeCompiler ZendVM Optimizer PHP token AST opcode opcode OpcodeCache opcode 13年9月14日土曜日
16.
最適化の例 opcode数を減らしたり、効率の良いものに置換したりする OPcache無効:4opcodes OPcache有効:1opcode 13年9月14日土曜日
17.
VLD opcodeを確認するためのPHP extension http://derickrethans.nl/projects.html#vld メンテナ:Derick Rethans GitHub上ではPHP
5.5に対応済み https://github.com/derickr/vld 5.5対応のパッチは僕が書きました。バグレポよろしく。 13年9月14日土曜日
18.
Zend OPcache とは 最適化フェーズの内側 安定性をどう判断するか 13年9月14日土曜日
19.
OPcacheの最適化内容 substitute persistent constants
(true, false, null, etc) perform compile-time evaluation of constant binary and unary operations optimize series of ADD_STRING and/or ADD_CHAR convert CAST(IS_BOOL,x) into BOOL(x) convert INTI_FCALL_BY_NAME + DO_FCALL_BY_NAME into DO_FCALL convert non-numeric constants to numeric constants in numeric operators optimize constant conditional JMPs optimize static BRKs and CONTs optimize $i = $i+expr to $i+=expr optimize series of JMPs change $i++ to ++$i where possible CFG optimization Optimize temp variables usage remove NOPs 高度な最適化は行っていない印象 13年9月14日土曜日
20.
最適化の具体例(1) コンパイル時に評価できる場所は先に評価する 「$seconds_in_a_day = 60*60*24;」 あらかじめ
86400 として変数にセットする 13年9月14日土曜日
21.
最適化の具体例(1) OPcacheなし 60を60倍して、さらに24倍している 13年9月14日土曜日
22.
最適化の具体例(1) OPcacheあり 60*60*24した結果をいきなり変数に代入 13年9月14日土曜日
23.
最適化の具体例(2) 可能であれば $i++ を
++$i に変える 式 $i++ の結果を利用していない場合、両者は交換可能 交換するとopcode数が減る $i++ はZend VM上では2命令に展開される ++$i は1命令に展開される 13年9月14日土曜日
24.
最適化の具体例(3) 無駄なジャンプ命令を削除する ジャンプ命令の飛び先がジャンプ命令になる場合がある 2重ループの終端など <?php for ($i =
0; $i < 10; $i++) { for ($j = 0; $j < 10; $j++) { $sum += $arr[$i][$j] } } 13年9月14日土曜日
25.
OPcacheがやらないこと(1) 共通部分式の除去 (Common Subexpression
Elimination) 下記コードには「$_GET[’x’]」が2回出現 opcodeレベルでは3命令、一時変数に格納すれば有利 <?php $y = $_GET[’x’] + 1; $z = $_GET[’x’] - 9; 13年9月14日土曜日
26.
OPcacheがやらないこと(2) ループ不変式の追い出し (Loop Invariant
Motion) 可能であればループ内の式をループ外に追い出す 例:下記の「$a=$b*$c」をループ外に追い出す <?php for ($i = 0; $i < 10; $i++) { $a = $b * $c; ...($a,$b,$cの値がループ内で不変) } 13年9月14日土曜日
27.
最適化の効果 ひとつひとつの最適化の効果はごく僅か この手の最適化は「ちりも積もれば」的な部分が大きい 人力で行っても報われないことが多い 細かい最適化が好きな人はOPcacheに機能追加しよう! 教科書的な内容で未実装のものが多い 13年9月14日土曜日
28.
Zend OPcache とは 最適化フェーズの内側 安定性をどう判断するか 13年9月14日土曜日
29.
APCとの比較 PHP 5.4用のAPCはずっとbeta 高負荷サイトでのホットデプロイ時に白画面になる事故 OPcache はPHP
5.5から本体添付、5.5なら鉄板 PHP 5.2以降をサポートしている PHP 5.4との組み合わせも要注目 13年9月14日土曜日
30.
OPcacheの枯れ具合 一定の安心感 開発開始から約10年、Zend社の製品として提供 PHPのコアコミッターが複数人参加している 今までソースコードが出ていなかった分、ポカがありうる 最近バグ報告しました / PHP5.5.2
に入ってます zendtech/ZendOptimizerPlus PR#113 13年9月14日土曜日
31.
まとめ OPcacheの最適化 仕組みとしても、実測値から見ても有効 まだ最適化の余地がある OPcacheの安定性 APCより良いのでは(特に5.4+) 一定レベル以上ではないか 13年9月14日土曜日
32.
ご静聴 ありがとう ございました 13年9月14日土曜日
Jetzt herunterladen