Submit Search
Upload
PHP7から不変配列がOPcacheに乗るのでKVSを置き換えられるかもしれないという話
•
3 likes
•
6,943 views
Yoshio Hanawa
Follow
PHPerKaigi 2021 (2021/3/27) 発表資料。補足記事:https://hnw.hatenablog.com/entry/2021/03/29/011242
Read less
Read more
Software
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
PHPerKaigi Online #1 発表資料
自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Yoshio Hanawa
PHPerKaigi 2020 (2020/2/11) 発表資料。PHPカンファレンス 2019発表の再演です。
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
PHPカンファレンス 2019 (2019/12/01) 発表資料
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
秋の大LT会 2019 in Aizu #4 (2019/11/02) 発表資料
ぼくのかんがえる さいきょうの銀行振込
ぼくのかんがえる さいきょうの銀行振込
Yoshio Hanawa
RCC夏期成果物発表会にお邪魔したときのLT発表資料です。
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
Yoshio Hanawa
manifes2018 発表資料
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
Yoshio Hanawa
PHPカンファレンス2017 発表資料
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
Yoshio Hanawa
manifes2017発表資料
GitHubからお金をもらった話
GitHubからお金をもらった話
Yoshio Hanawa
Recommended
PHPerKaigi Online #1 発表資料
自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Yoshio Hanawa
PHPerKaigi 2020 (2020/2/11) 発表資料。PHPカンファレンス 2019発表の再演です。
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
PHPカンファレンス 2019 (2019/12/01) 発表資料
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
秋の大LT会 2019 in Aizu #4 (2019/11/02) 発表資料
ぼくのかんがえる さいきょうの銀行振込
ぼくのかんがえる さいきょうの銀行振込
Yoshio Hanawa
RCC夏期成果物発表会にお邪魔したときのLT発表資料です。
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
Yoshio Hanawa
manifes2018 発表資料
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
Yoshio Hanawa
PHPカンファレンス2017 発表資料
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
Yoshio Hanawa
manifes2017発表資料
GitHubからお金をもらった話
GitHubからお金をもらった話
Yoshio Hanawa
社内ミーティング用の資料です。
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
Yoshio Hanawa
第七回闇PHP勉強会 (2016/12/11) 発表資料
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
PHPカンファレンス2016発表資料
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Yoshio Hanawa
LLoT(2016/8/27)発表資料
Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
Go Conference 2015 Winter 発表資料
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
KLab社内勉強会ALM 発表資料
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
PHP BLT #1 発表資料
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
第六回闇PHP勉強会発表資料
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
第94回PHP勉強会(2015/10/1) 発表資料
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
Developers Summit 2015 KANSAI (2015/9/4) 発表資料
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
第29回PHP勉強会発表資料です
PHPの正規表現と最長一致
PHPの正規表現と最長一致
Yoshio Hanawa
PHPカンファレンス関西2015にて発表
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
2015/1/24 江戸前セキュリティ勉強会のLT発表資料です
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Yoshio Hanawa
第85回PHP勉強会資料
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
第70回PHP勉強会の発表資料です。
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
Yoshio Hanawa
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
Yoshio Hanawa
More Related Content
More from Yoshio Hanawa
社内ミーティング用の資料です。
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
Yoshio Hanawa
第七回闇PHP勉強会 (2016/12/11) 発表資料
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
PHPカンファレンス2016発表資料
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Yoshio Hanawa
LLoT(2016/8/27)発表資料
Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
Go Conference 2015 Winter 発表資料
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
KLab社内勉強会ALM 発表資料
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
PHP BLT #1 発表資料
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
第六回闇PHP勉強会発表資料
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
第94回PHP勉強会(2015/10/1) 発表資料
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
Developers Summit 2015 KANSAI (2015/9/4) 発表資料
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
第29回PHP勉強会発表資料です
PHPの正規表現と最長一致
PHPの正規表現と最長一致
Yoshio Hanawa
PHPカンファレンス関西2015にて発表
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
2015/1/24 江戸前セキュリティ勉強会のLT発表資料です
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Yoshio Hanawa
第85回PHP勉強会資料
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
第70回PHP勉強会の発表資料です。
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
Yoshio Hanawa
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
Yoshio Hanawa
More from Yoshio Hanawa
(20)
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Laungage Update PHP編
Laungage Update PHP編
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
PHPの正規表現と最長一致
PHPの正規表現と最長一致
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
PHP7はなぜ速いのか
PHP7はなぜ速いのか
PHPNGの動向
PHPNGの動向
zval をダイエットしてみた
zval をダイエットしてみた
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
PHP7から不変配列がOPcacheに乗るのでKVSを置き換えられるかもしれないという話
1.
PHP7+'s OPcache can
store immutable array and might replace KVS 1)1͔Βෆมྻ͕01DBDIF ʹΔͷͰ,74Λஔ͖͑ΒΕ Δ͔͠Εͳ͍ͱ͍͏ 1)1FS,BJHJ ൃදࢿྉ !IOX
2.
ࣗݾհ ❖ !IOX ❖ ॴଐɿ,-BCࣜגձࣾ ❖
8FBSFIJSJOH ❖ 1)1ຊମͷ$ιʔείʔυΛಡΉͷ͕झຯ ❖ 1)1ͷόάΛ݅ใࠂ
3.
ࣗݾհ 1)1ΧϯϑΝϨϯε 1)1ΧϯϑΝϨϯεؔ
4.
ࠓ͓͢͠Δ͜ͱ ❖ 1)1͔Βෆมྻ͕ϝνϟΫνϟ͘ͳͬͨ ❖ ࣮͔ΒݟΔߴԽͷཧ۶ ❖
,74ͱͷൺֱ ❖ ·ͱΊ
5.
❖ 1)1͔Βෆมྻ͕ϝνϟΫνϟ͘ͳͬͨ ❖ ࣮͔ΒݟΔߴԽͷཧ۶ ❖
,74ͱͷൺֱ ❖ ·ͱΊ
6.
1)1ͷΒΕ͟Δੑೳվળ ❖ ϨίʔυɺΧϥϜͷ࣍ݩྻΛฦ͢ྫ ?php function foo()
{ return [ x1=[foo=1,bar=2/* (ུ) */,thud=13], x2=[foo=1,bar=2/* (ུ) */,thud=13], /* 30000ߦলུ */ x30000=[foo=1,bar=2/* (ུ) */,thud=13], ]; } foo();
7.
1)1ͷΒΕ͟Δੑೳվળ ❖ 1)1ͱൺͯ1)1ஈҧ͍ʹ͍
8.
1)1ͷΒΕ͟Δੑೳվળ ❖ 01DBDIF֦ுͳͩ͠ͱࠩഒఔ
9.
ഒͷߴԽཧղͰ͖Δ ഒͱҰମʜʁ
10.
1)1͔Βʮෆมྻʯ͕ಋೖ͞Εͨ ❖ ෆมྻʹશΩʔɾશཁૉ͕ϦςϥϧͰ͋Δྻ ❖ ্࣮ͷ໊ͼݺɺϚχϡΞϧʹແ͍ͣ ❖
1)1Ҏ߱ɺ01DBDIFෆมྻΛΩϟογϡ͢Δ ❖ ྻߏஙͷख͕ؒθϩʹͳΓεϐʔυʹͳͬͨ ࣍ͷίʔφʔͰվળͷৄࡉΛհ͍͖ͯ͠·͢
11.
❖ 1)1͔Βෆมྻ͕ϝνϟΫνϟ͘ͳͬͨ ❖ ࣮͔ΒݟΔߴԽͷཧ۶ ❖
,74ͱͷൺֱ ❖ ·ͱΊ
12.
1)1Ͳ͏࣮ߦ͞Ε͍ͯΔ͔ʁ ❖ 1)1εΫϦϓτͦͷ··Ͱ࣮ߦͰ͖ͳ͍ ❖ PQDPEFྻʹίϯύΠϧͯ͠;FOE7.্Ͱ࣮ߦ͢Δ ίϯύΠϧॲཧ 7.࣮ߦ PQDPEF 1)1
13.
;FOE7.ͱ ❖ PQDPEFʢ7.໋ྩʣΛ࣮ߦ͢ΔԾ$16࣮ ❖ PQDPEFͷ࣮ߦͱثεΫϦϓτ͔ޠݴΒPQDPEFͷม ثͷೋஈߏ͑ͷ࣮
14.
1)1Ͳ͏࣮ߦ͞Ε͍ͯΔ͔ʁ ❖ 01DBDIF༗ޮͩͱॲཧ͕૿͑Δ ❖ Ωϟογϡώοτͨ͠ΒલஈͷॲཧΛεΩοϓͰ͖Δ ίϯύΠϧॲཧ 7.࣮ߦ ࠷దԽ PQDPEF PQDPEF Ωϟογϡ PQDPEF 1)1
15.
1)1࣌Ͳ͏࣮ߦ͞Ε͍͔ͯͨʁ ❖ ઌ΄Ͳͷ1)1εΫϦϓτΛߟ͑·͠ΐ͏ ?php function foo()
{ return [ x1=[foo=1,bar=2/* (ུ) */,thud=13], x2=[foo=1,bar=2/* (ུ) */,thud=13], /* 30000ߦলུ */ x30000=[foo=1,bar=2/* (ུ) */,thud=13], ]; } foo();
16.
1)1࣌Ͳ͏࣮ߦ͞Ε͍͔ͯͨʁ ❖ 1)1ͰྻߏஙͷPQDPEFྻʹίϯύΠϧ͞ΕΔ ❖ ʮྻʹཁૉΛՃ͢Δʯ͕ݸͷPQDPEF ❖
ڊେྻͩͱྻͷߏஙίετ͕େ͖͍
17.
1)1࣌Ͳ͏࣮ߦ͞Ε͍͔ͯͨʁ ❖ Ωϟογϡώοτ࣌PQDPEFྻͷ࣮ߦຖճඞཁ 1)1ϓϩηε ڞ༗ϝϞϦ ʢ01DBDIFཧʣ ྻߏஙͷPQDPEF ʜ Ωϟογϡώοτɺ࣮ߦ
18.
1)1࣌Ͳ͏࣮ߦ͞Ε͍͔ͯͨʁ ❖ Ωϟογϡώοτ࣌PQDPEFྻͷ࣮ߦຖճඞཁ ❖ ສཁૉͷྻͳΒ7.໋ྩΛສճ࣮ߦ 1)1ϓϩηε
ڞ༗ϝϞϦ ʢ01DBDIFཧʣ ྻߏஙͷPQDPEF ʜ ྻͷ࣮ମ ྻߏங
19.
ڞ༗ϝϞϦͱ ❖ ϓϩηεؒͰڞ༗Ͱ͖ΔϝϞϦྖҬ ❖ 01DBDIFΩϟογϡʹڞ༗ϝϞϦΛར༻͍ͯ͠Δ
20.
1)1ͷෆมྻແྉ ❖ 1)1Ͱෆมྻͷ࣮ମ͕Ωϟογϡର ❖ $16ΛফඅͤͣʹߏஙࡁΈྻʹΞΫηεͰ͖Δ ڞ༗ϝϞϦ ʢ01DBDIFཧʣ ྻͷ࣮ମ 1)1ϓϩηε
ෆมྻͷΞΫηε
21.
1)1ͷෆมྻແྉ ❖ 1)1Ͱෆมྻͷ࣮ମ͕Ωϟογϡର ❖ $16ΛফඅͤͣʹߏஙࡁΈྻʹΞΫηεͰ͖Δ ❖
ϓϩηεؒͰ࣮ମΛڞ༗Ͱ͖ΔͷͰলϝϞϦ ڞ༗ϝϞϦ ʢ01DBDIFཧʣ ྻͷ࣮ମ 1)1ϓϩηε 1)1ϓϩηε 1)1ϓϩηε
22.
ෆมྻʹ͍ͭͯখ·ͱΊ ❖ 1)1Ҏ߱ɺෆมྻ01DBDIFͷΩϟογϡର ❖ શ1)1ϓϩηεͰෆมྻͷ࣮ମΛڞ༗Ͱ͖Δ ❖
ߴͳ্ʹলϝϞϦ ❖ ڊେͳෆมྻΛར༻͢Δো͕ͳ͘ͳͬͨ ༻్࣍ୈͰ,74Λஔ͖͑ΒΕΔͷͰʁ
23.
❖ 1)1͔Βෆมྻ͕ϝνϟΫνϟ͘ͳͬͨ ❖ ࣮͔ΒݟΔߴԽͷཧ۶ ❖
,74ͱͷൺֱ ❖ ·ͱΊ
24.
Ϛελʔσʔλͷอॴͷݕ౼ ❖ ϚελʔσʔλɺͲ͜ʹอͯ͠·͔͢ʁ ❖ Ϣʔβʔૢ࡞Ͱॻ͖ΘΒͳ͍σʔλ ❖
ڊେʹͳΓ͕ͪ ❖ ໓ଟʹมΘΒͳ͍ͷͰߴͳΩϟογϡʹೖΕ͍ͨ ❖ ,74ʹΩϟογϡͯ͠ྑ͍ ❖ 1)1ྻͷͰܗσϓϩΠͯ͠ྑ͍ͷͰʁ
25.
,74ͱͷੑೳൺֱ ❖ ൺֱର ❖ 01DBDIF ❖
1$V ❖ QIQNFNDBDIFE
26.
.FNDBDIFE ❖ QIQSFEJT
27.
3FEJT
28.
ͷൺֱ ❖ ݅ΩϟογϡΞΫηεͰͷൺֱ
29.
ͷൺֱ ❖ ݅ΩϟογϡΞΫηεͰͷൺֱ ❖ .FNDBDIFE3FEJTʹର͠1$V͕ܻɺ01DBDIF͕ ܻ͍ ❖
େ݅ΞΫηε͠ͳ͍ͷͰͱࠩޡ͑ݴΔ
30.
ϝϞϦফඅͷൺֱ ❖ ສཁૉΛΩϟογϡʹͤͯൺֱ
31.
ϝϞϦফඅͷൺֱ ❖ ສཁૉΛΩϟογϡʹͤͯൺֱ ❖ .FNDBDIFE3FEJTʹର͠01DBDIFফඅϝϞϦ͕ഒ ❖
1)1ͷσʔλߏͷํ͕ແବ͕ଟ͍ͱࢥΘΕΔ
32.
ੑೳൺֱ͔ΒಡΈऔΕΔ͜ͱ ❖ 01DBDIFϚελʔσʔλͷอॴͱͯ͠༏ल ❖ ߴ͔ͭϝϞϦফඅ,74ͷഒఔͰࡁΜͰ͍Δ ❖
ͱ͍͑ଞͷબࢶ௨ৗͷ༻్ͳΒे༏ल ❖ ࠓಈ͍͍ͯΔͷΛஔ͖͑Δඞཁͳ͍ͣ
33.
೦ͷͨΊҙ ❖ ͜ͷखͷੑೳൺֱΛਅʹड͚͗͢ͳ͍ͰԼ͍͞😉 ❖ ϘτϧωοΫҎ֎Λͯ͘͠શମͷӨڹܰඍ ❖
େͷݱͰੑೳΑΓอकੑ͕େࣄ
34.
❖ 1)1͔Βෆมྻ͕ϝνϟΫνϟ͘ͳͬͨ ❖ ࣮͔ΒݟΔߴԽͷཧ۶ ❖
,74ͱͷൺֱ ❖ ·ͱΊ
35.
·ͱΊ ❖ 1)1͔Βෆมྻ͕01DBDIFͷΩϟογϡର ❖ ෆมྻߴ͔ͭলϝϞϦ ❖
3%#,74ʹஔ͍͍ͯͨσʔλʹ͍ͭͯɺ1)1ϑΝΠ ϧԽ͢Δબࢶ͕૿͑ͨ ❖ طଘͷ,74࣮Λஔ͖͑Δ΄ͲͰͳ͍ʜͣ ❖ ৽࣮نͷࡍʹ͝ݕ౼͍ͩ͘͞
36.
͝੩ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠
37.
ิςετڥͷৄࡉ ❖ .BDNJOJ ❖ 04NBD04.PKBWF ❖
$16()[*OUFM$PSFJ ❖ NFNPSZ(# ❖ OHJOY
38.
QIQGQN
39.
21)1ͷྻશ෦Ωϟογϡରʁ ❖ Ωʔ͔ʹͭͰม͕ೖ͍ͬͯͨΒPQDPEFྻʹί ϯύΠϧ͞ΕͯෆมྻͷԸܙड͚ΒΕ·ͤΜ ❖ ڊେྻͳΜ͚ͩͲෆม͡Όͳ͍߹ɺෆม෦͚ͩ ผྻʹΓग़͢ͱੑೳվળʹͳΔՄೳੑ͕͋Γ·͢
40.
2ෆมྻΛॻ͖ͨ͑ΒͲ͏ͳΔʁ ❖ ίϐʔΦϯϥΠτʹΑΓίϐʔ͞Εͯॻ͖ΘΓ·͢ ❖ ෆมʹڞ༗ϝϞϦ্ͷΩϟογϡͷѻ͍ ❖
ϓϩάϥϚઢͰͷ͍উखԿมΘΒͳ͍
Download now