Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPのARM向け最適化の中身を見てみた
Search
hnw
March 25, 2023
Technology
0
470
PHPのARM向け最適化の中身を見てみた
PHPerKaigi 2023 (2023/03/25) 発表資料
hnw
March 25, 2023
Tweet
Share
More Decks by hnw
See All by hnw
PHPのimmutable arrayとは
hnw
1
510
PHPerだってPHPから「OKグーグル」したい!
hnw
1
2.1k
Other Decks in Technology
See All in Technology
デジタルアイデンティティ技術 認可・ID連携・認証 応用 / 20250114-OIDF-J-EduWG-TechSWG
oidfj
2
670
Formal Development of Operating Systems in Rust
riru
1
420
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
470
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
11
1.5k
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
140
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
850
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
12k
comilioとCloudflare、そして未来へと向けて
oliver_diary
6
440
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
2.2k
アジャイルチームが変化し続けるための組織文化とマネジメント・アプローチ / Agile management that enables ever-changing teams
kakehashi
3
3.3k
Featured
See All Featured
BBQ
matthewcrist
85
9.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
4 Signs Your Business is Dying
shpigford
182
22k
Designing for humans not robots
tammielis
250
25k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Unsuck your backbone
ammeep
669
57k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Thoughts on Productivity
jonyablonski
68
4.4k
How STYLIGHT went responsive
nonsquared
96
5.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Transcript
Exploring ARM64 optimization in PHP 7.4+ 1)1ͷ"3.͚࠷దԽͷ தΛݟͯΈͨ 1)1FS,BJHJ
ൃදࢿྉ !IOX
ࣗݾհ ❖ !IOX ❖ ॴଐɿ,-BCגࣜձࣾ ❖ $50ͯ͠·͢ ❖ 1)1ຊମͷ$ιʔείʔυΛಡΉͷ͕झຯ ❖
1)1ຊମͷόάΛ݅ใࠂ
Έͳ͞Μ "3.Πϯελϯεͬͯ·͢ʁ
ࠓ"3.ۙͳબࢶ ❖ "84(SBWJUPOʢಠࣗ"3.ܥ$16ʣΠϯελϯεΛఏڙ͍ͯ͠Δ ❖ ίετύϑΥʔϚϯεʹ༏Ε͍ͯΔ ❖ ಉఔͷੑೳͷNH "3. ͕N *OUFM
ΑΓ͍҆ ※ ౦ژϦʔδϣϯͷΦϯσϚϯυΠϯελϯεͷՁ֨Ͱൺֱ 0''
ࠓ͙͢"3.Λ࠾༻͖͔͢ʁ ❖ ຊʹ҆͘ͳΔ͔ཁݕ౼ ❖ ΞϓϦέʔγϣϯʹΑͬͯ"3.ͷํ͕͍͜ͱ͋Δ ❖ ֤छ044ͷ࠷దԽ*OUFMܥͷํ͕ਐΜͰ͍Δ ❖ "3.͚࠷దԽͷਐߦͱ$16։ൃͷਐߦͰঢ়گվળ͍ͯͣ͘͠ ❖
1)1ʹ͍ͭͯ"84ࣾһ͕"3.Ή͚࠷దԽΛຊମʹDPOUSJCVUF ❖ 1)1ʢϦϦʔεʣҎ߱Ͱར༻Ͱ͖Δ
"3.্ͷ1)1͍ͷ͔ʁ ❖ ͔֬ʹ1)1͔Β"3.͚ͩ͘ͳͬͯΔʢ.H͕(SBWJUPOʣ VQ VQ
ϕϯνϚʔΫςετ͕͍͚ͩͰʁ ❖ ࣮ΞϓϦͰ1)1͔Β"3.͚ͩ͘ͳͬͯΔ VQ
❖ Ճݮࢉԋࢉࢠɺ࿈ྻͷ෦ॲཧɺؔݸΛੑೳվળ 1)1ͷ"3.Ή͚࠷దԽͷத Function Speedup ࠷దԽͷத inc/dec 1.5x Φʔόʔϑϩʔݕग़ߴԽ add/sub
1.82x Φʔόʔϑϩʔݕग़ߴԽ hash_init 1.61x /&0/໋ྩར༻ hash_func 1.72x ໋ྩϨϕϧฒྻੑվળ crc32 29x "3.໋ྩར༻ strrev 7.8x /&0/໋ྩར༻ base64 encode 3.5x /&0/໋ྩར༻ base64 decode 2.15x /&0/໋ྩར༻ addslashes 2.8x /&0/໋ྩར༻ stripslashes 4.9x /&0/໋ྩར༻
࠷దԽͷओ/&0/໋ྩ ❖ /&0/໋ྩʹ"3.ͷ4*.% 4JOHMF*OTUSVDUJPO.VMUJQMF%BUB ໋ྩ ❖ 4*.%ʹ໋ྩͰෳͷσʔλʹରͯ͠ಉ͡ॲཧ͕Ͱ͖Δ ❖ ߴͳΜ͚ͩͲ͍ʹ͍͘Ϛγϯޠͷ໋ྩ܈ ❖
ը૾ॲཧͷߴԽͳͲ͕యܕతͳϢʔεέʔε
/&0/໋ྩͷయܕతͳར༻ྫ ❖ ࿈ଓϝϞϦྖҬʹ͋ΔϐΫηϧσʔλʢ3(#CJUʣΛ৭͝ͱʹॲཧ͢Δ
CBTF@FODPEFͷߴԽͷ༰ ❖ "3.͚࠷దԽͷதͰ໘ന͔ͬͨͷΛݸհ͠·͢ ❖ ߴԽରɿCBTF@FODPEF ❖ CJUͷόΠφϦΛCJUͷ"4$**ʹม͢Δॲཧ ❖ ߴԽͷख๏ɿ/&0/໋ྩΛͬͯόΠτΛҰׅม
❖ ഒͷߴԽ
CBTF@FODPEFͷߴԽͷ༰ ❖ WFDUPS WFDUPSʹಛԽͨ͠MPBETUPSF໋ྩΛ༗ޮ׆༻͍ͯ͠Δ
·ͱΊ ❖ "841)1ʹ"3.͚࠷దԽΛೖΕͨɺ1)1͔Βར༻Մೳ ❖ ࣗࣾͷϏδωεΛޙԡ͢͠Δ044DPOUSJCVUFɺ໘ന͍Ͱ͢Ͷ ❖ "3.͚ͷ࠷దԽ/&0/໋ྩΛར༻͢Δͷ͕ଟ͔ͬͨ ❖ ߴԽͰ͖Δؔɾॲཧଞʹ͋Γͦ͏ ❖
Έͳ͞Μ͍͖ͬͯ·͠ΐ͏ ❖ ݸਓతʹ3BTQCFSSZ1JʢCJU"3.ʣ͚ʹରԠ͍ͨ͠