SlideShare a Scribd company logo
1 of 51
Download to read offline
What’s new in PHP7
PHP7で変わること
̶̶言語仕様とエンジンの改善ポイント
hnw
PHPカンファレンス関西2015
(2015/5/30)発表資料
自己紹介
❖ @hnw
❖ 勤務先:KLab株式会社
❖ カレーとバグが大好物
❖ PHP歴15年
❖ PHPや周辺エクステンションにバグレポ・PR多数
アジェンダ
❖ PHP7、さいきんどう?
❖ PHP7の新機能
❖ 性能改善と背景
❖ データ構造の変更
❖ HHVMとPHP
まずはアンケート
PHP7って

聞いたことがある人?
実際にPHP7を

動かしたことがある人?
❖ PHP7、さいきんどう?
❖ PHP7の新機能
❖ 性能改善と背景
❖ データ構造の変更
❖ HHVMとPHP
PHP7?
❖ PHP 5.6.xの次のバージョンがPHP 7.0.0
❖ PHP6はスキップ
❖ 約10年ぶりのメジャーバージョンアップ
さいきんのPHP7
❖ 予定通り3月に新機能の導入を凍結
❖ RFCが大量に出ていたので個人的に心配していた
❖ そろそろalpha1を出す予定だったが、遅延ぎみ
❖ まだ議論が残っているため
❖ 11月にPHP7リリース予定
PHPのRFCシステム
❖ 新機能の導入にはRFCと呼ばれる説明ページが必要
❖ 提案内容や変更による影響などを書く
❖ MLで議論後、投票によって採用・不採用が決まる
❖ 過半数または2/3以上の同意が必要(内容による)
❖ スピード感は無いが、十分機能している印象
PHP7に対するRFC
❖ PHP7で採択されたRFCは48個
❖ 参考:PHP 5.6は17個、PHP 5.5は20個
→普段のマイナーバージョンアップよりは変化が大きい
PHP7で変わらないこと
❖ PHPは言語仕様の変更に対して非常に保守的
❖ PHP7でも後方互換性は重視されている
❖ 移行コストは十分低いはず
❖ PHP7、さいきんどう?
❖ PHP7の新機能
❖ 性能改善と背景
❖ データ構造の変更
❖ HHVMとPHP
致命的エラーが例外になった
❖ PHP5までの致命的エラー
❖ エラーハンドリングできず、即座に終了していた
❖ PHP7の致命的エラー
❖ EngineExceptionという新しい例外になった
❖ トップレベルに到達すると今まで通りのエラーになる
→ユニットテストで致命的エラーから復帰できる
??演算子の新設
❖ nullでなければその値を、nullなら右オペランドを返す
❖ isset()と同様に未定義値に対しても使える
❖ ようやくisset()地獄から解放されるぞ!
無名クラスの導入
❖ クラス定義と同時にインスタンス化できる構文を導入
❖ その場限りのインスタンスを作りたいときに便利
AST(抽象構文木)の導入
❖ 解釈フェーズが

1段増えた
❖ 文法解釈の柔軟性が

上がった
❖ opcode最適化
Zend VM
opcode
Parser
Lexer
token
PHP
Zend VM
opcode
Parser
Lexer
token
PHP
Opcode Compiler
AST
PHP 5 PHP 7
返り値のタイプヒントをサポート
❖ 関数の返り値に型が指定できるようになった
❖ 抽象クラスやインターフェースで指定すると便利
スカラ型のタイプヒントをサポート
❖ 以下の型が引数・返り値で指定できるようになった
❖ int型
❖ float型
❖ string型
❖ bool型
❖ ようやく落としどころが見つかった
非推奨だった機能を廃止
❖ PHP5.6までに非推奨になった機能をPHP7で廃止
❖ ereg関数(preg関数使ってね)
❖ mysql関数(mysqli関数かPDO使ってね)
❖ その他
非推奨だった機能を廃止
❖ 今までもdeprecated(非推奨)エラーが出ていたはず
❖ いま開発環境が E_DEPRECATEDの人は注意
❖ php.iniが空だとdeprecatedエラーは出ません
❖ PHP7、さいきんどう?
❖ PHP7の新機能
❖ 性能改善と背景
❖ データ構造の変更
❖ HHVMとPHP
PHP7は速いらしい
❖ 「PHP5より倍速い」
❖ 「HHVMとほぼ互角」
❖ ホントに?
PHP7の性能(1)
Zeevのブログ記事(2014/7)より
PHP7の性能(2)
DmitryのZendCon 2014での発表(2014/10)より
PHP7の性能(3)
RasmusのFluent 2015での発表(2015/4)より
PHP7の性能(4)
❖ ごく最近まで性能改善が続いている
速くなりすぎ?
❖ PHP7は確かに速い
❖ この1年で倍の高速化(WordPressで比較)
❖ 今までも性能改善をサボっていたわけじゃない
❖ 10年間(PHP5.0→5.6)で倍の高速化
❖ 5.4以降は頭打ちの感さえあった
何があったのか?
❖ 現代のCPUに合わせて大幅なデータ構造変更を行った
❖ データ量の削減・データ局所性の改善
❖ 高速化チームの裁量が大きかった
❖ RFC「Move the phpng branch into master」
❖ 様々なアイデアを約1年間に渡って実現
❖ PHP7、さいきんどう?
❖ PHP7の新機能
❖ 性能改善と背景
❖ データ構造の変更
❖ HHVMとPHP
データ構造の変更
❖ PHP7で見直したデータ構造
❖ PHPの変数(zval)
❖ 文字列(zend_string)
❖ 配列(HashTable / Bucket)
❖ 特にzvalの見直しは非常に大胆だが有効だった
データ構造変更の必要性(1)
❖ これまでのデータ構造は32bit CPUの頃の設計
❖ 16bytes中14bytesを使う構造だった
❖ 64bit CPUでは24bytes中6bytesが未使用
❖ 64bit時代に対応したデータ構造が必要
データ構造変更の必要性(2)
❖ キャッシュを効率的に使う発想が無い頃の設計
❖ メモリやキャッシュが相対的に速かった
❖ 現代のCPUではキャッシュを有効活用する必要性
❖ CPU速度に比べるとメモリ速度の改善は鈍い
❖ キャッシュサイズもあまり増えていない
PHP5のzval(int型)
❖ 計24bytes
❖ 常にポインタ参照される
❖ 参照カウント&コピーオンライト
PHP7のzval(int型)
❖ 計16bytes
❖ 参照カウントしない、代入では常にコピー
新zvalへの評価
❖ どの環境でも16bytes
→64bit時代に対応
❖ ポインタ参照が1段減った
❖ int型・float型・bool型でコピーオンライト廃止
→メモリ消費量減少
→キャッシュに優しくなった
❖ PHP7で我々は本物の配列を手に入れた!
配列にも大改革
❖ PHP7で我々は本物の配列を手に入れた!
配列にも大改革
配列とは
❖ (典型的には)連続するメモリ領域を確保する
❖ インデックスは0から連続する数字
❖ 読み書きが高速
リンゴ
バナナ
トマト
ニンジン
0
1
2
3
連想配列とは
❖ 文字列をキーにできる
❖ そこそこ読み書きも速い(配列よりは遅い)
"apple"
0
"banana" "carrot"
1 2 3 4 5 6 7
キーのハッシュ値を計算
"apple"=>リンゴ"banana"=>バナナ "tomato"=>トマト
"tomato"
"carrot"=>ニンジン
PHP5の配列
❖ PHP5までは連想配列しか無かった
❖ $array[1]でも連想配列アクセスしていた
❖ 他の言語の配列に比べると遅かった
PHP7の配列
❖ PHP7から配列と連想配列が作れるようになった
❖ 内部で自動的に選択される
❖ キーが0から連続する数字なら配列になる
→for文での配列のループ処理が高速になった
PHP7の配列
arData
flagsrefcount type gc_info
zend_array
u nTableMask
nNumUsed nNumOfElements
nTableSize nInternalPointer
nNextFreeElement
pDestructor
zval
Bucket[]
h (hash value)
key (キーへのポインタ)
h
key
0
1
h
key
2
zval
zval
❖ 他言語の配列と同じ構造

(数字キーのみの場合)
Bucket構造体の改善
❖ Bucket構造体:配列の要素1個に対応するデータ構造
❖ PHP5(72bytes)→PHP7(32bytes)
❖ メモリ使用量が劇的に減った
→配列のメモリ効率が良くなった
Bucket構造体の改善
❖ PHP7ではBucketの配列を連続領域に確保
❖ PHP5では1個ずつメモリ確保していた
→foreach文でのアクセス速度が有利に
❖ PHP7、さいきんどう?
❖ PHP7の新機能
❖ 性能改善と背景
❖ データ構造の変更
❖ HHVMとPHP
HHVMとは
❖ Facebookが自社向けに開発したPHPの実装
❖ PHP5より断然高速
❖ PHPコアコミッターがフルタイムでHHVMにコミット
❖ OSS開発もうまく回っている
→PHPでは初の「もう一つの選択肢」
HHVMの評価
❖ PHP7の登場で速度面のアドバンテージは失った
❖ JITコンパイルが効く状況では速い
❖ 実アプリケーションでの差は縮まった
❖ 魅力は多い
❖ 開発の活発さ、フットワークの軽さ
❖ Hack言語の仕様面での挑戦(例:async)
選択肢があることの価値
❖ HHVMはPHPに新しい価値を与えてくれた
❖ 必要に応じて別の実装を選べる状況
❖ PHP7での速度改善のモチベーション
❖ PythonやRubyでは当たり前の状況
❖ お互いに良い影響を与え続ける関係が望ましい
まとめ
❖ PHP7への移行のハードルは低い
❖ 便利そうな新機能が実装された
❖ 高速化のため大胆なリファクタリングが行われた
❖ 現代のアーキテクチャに合わせた最適化をした
❖ 他の選択肢があることに価値がある
❖ PHPもHHVMも盛り上がっていってほしい
ご静聴
ありがとう
ございました

More Related Content

What's hot

Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –虎の穴 開発室
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしようKouji Matsui
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみたy-uti
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話torisoup
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
PHPの今とこれから2022
PHPの今とこれから2022PHPの今とこれから2022
PHPの今とこれから2022Rui Hirokawa
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!Akihiro Nishimura
 
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター Unity Technologies Japan K.K.
 
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。Masahiko Hashimoto
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解したtorisoup
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計UnityTechnologiesJapan002
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方Yoshifumi Kawai
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話Wooram Yang
 

What's hot (20)

Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
PHPの今とこれから2022
PHPの今とこれから2022PHPの今とこれから2022
PHPの今とこれから2022
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!
 
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
 
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解した
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
 
Unityと.NET
Unityと.NETUnityと.NET
Unityと.NET
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 

Similar to PHP7で変わること ——言語仕様とエンジンの改善ポイント

PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのかYoshio Hanawa
 
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情PHP7の拡張モジュール事情
PHP7の拡張モジュール事情Yoshio Hanawa
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話Shohei Tai
 
Phpでアプリケーションサーバー
PhpでアプリケーションサーバーPhpでアプリケーションサーバー
Phpでアプリケーションサーバーk-motoyan
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くshinjiigarashi
 
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPressMasashi Shinbara
 
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたPHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたFumito Mizuno
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007Rui Hirokawa
 
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するphp-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するYoshio Hanawa
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006Rui Hirokawa
 
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのことLaravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのことYuta Ohashi
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るYoshio Hanawa
 
[TechLION] PHP Conference Japan 2014
[TechLION] PHP Conference Japan 2014[TechLION] PHP Conference Japan 2014
[TechLION] PHP Conference Japan 2014Yuki MAEJIMA
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecationy-uti
 
PHPの今と未来を語る
PHPの今と未来を語るPHPの今と未来を語る
PHPの今と未来を語るRui Hirokawa
 
CodeIgniter Con Tokyo 2011 資料
CodeIgniter Con Tokyo 2011 資料CodeIgniter Con Tokyo 2011 資料
CodeIgniter Con Tokyo 2011 資料Takako Miyagawa
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告y-uti
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったことWataru Terada
 

Similar to PHP7で変わること ——言語仕様とエンジンの改善ポイント (20)

PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのか
 
PHPNGの動向
PHPNGの動向PHPNGの動向
PHPNGの動向
 
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
 
Phpのはなし
PhpのはなしPhpのはなし
Phpのはなし
 
Phpでアプリケーションサーバー
PhpでアプリケーションサーバーPhpでアプリケーションサーバー
Phpでアプリケーションサーバー
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
 
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
 
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたPHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007
 
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するphp-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006
 
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのことLaravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
 
[TechLION] PHP Conference Japan 2014
[TechLION] PHP Conference Japan 2014[TechLION] PHP Conference Japan 2014
[TechLION] PHP Conference Japan 2014
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
PHPの今と未来を語る
PHPの今と未来を語るPHPの今と未来を語る
PHPの今と未来を語る
 
CodeIgniter Con Tokyo 2011 資料
CodeIgniter Con Tokyo 2011 資料CodeIgniter Con Tokyo 2011 資料
CodeIgniter Con Tokyo 2011 資料
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったこと
 

More from Yoshio Hanawa

自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみたYoshio Hanawa
 
Zend VMにおける例外の実装
Zend VMにおける例外の実装Zend VMにおける例外の実装
Zend VMにおける例外の実装Yoshio Hanawa
 
Zend VMにおける例外の実装
Zend VMにおける例外の実装Zend VMにおける例外の実装
Zend VMにおける例外の実装Yoshio Hanawa
 
ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込Yoshio Hanawa
 
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」Yoshio Hanawa
 
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話Yoshio Hanawa
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことYoshio Hanawa
 
GitHubからお金をもらった話
GitHubからお金をもらった話GitHubからお金をもらった話
GitHubからお金をもらった話Yoshio Hanawa
 
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べたiOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べたYoshio Hanawa
 
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係Yoshio Hanawa
 
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそうYoshio Hanawa
 
Laungage Update PHP編
Laungage Update PHP編Laungage Update PHP編
Laungage Update PHP編Yoshio Hanawa
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話Yoshio Hanawa
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたYoshio Hanawa
 
PHPの正規表現と最長一致
PHPの正規表現と最長一致PHPの正規表現と最長一致
PHPの正規表現と最長一致Yoshio Hanawa
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちはYoshio Hanawa
 
zval をダイエットしてみた
zval をダイエットしてみたzval をダイエットしてみた
zval をダイエットしてみたYoshio Hanawa
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るYoshio Hanawa
 
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版Yoshio Hanawa
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るYoshio Hanawa
 

More from Yoshio Hanawa (20)

自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
 
Zend VMにおける例外の実装
Zend VMにおける例外の実装Zend VMにおける例外の実装
Zend VMにおける例外の実装
 
Zend VMにおける例外の実装
Zend VMにおける例外の実装Zend VMにおける例外の実装
Zend VMにおける例外の実装
 
ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込
 
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
 
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
 
GitHubからお金をもらった話
GitHubからお金をもらった話GitHubからお金をもらった話
GitHubからお金をもらった話
 
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べたiOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
 
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
 
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
 
Laungage Update PHP編
Laungage Update PHP編Laungage Update PHP編
Laungage Update PHP編
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
 
PHPの正規表現と最長一致
PHPの正規表現と最長一致PHPの正規表現と最長一致
PHPの正規表現と最長一致
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
 
zval をダイエットしてみた
zval をダイエットしてみたzval をダイエットしてみた
zval をダイエットしてみた
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
 
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
 

PHP7で変わること ——言語仕様とエンジンの改善ポイント