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
690
PHPのARM向け最適化の中身を見てみた
PHPerKaigi 2023 (2023/03/25) 発表資料
hnw
March 25, 2023
Tweet
Share
More Decks by hnw
See All by hnw
業務でAIを使いたい話
hnw
0
350
PHPのimmutable arrayとは
hnw
1
640
PHPerだってPHPから「OKグーグル」したい!
hnw
1
2.5k
Other Decks in Technology
See All in Technology
マネージャー視点で考えるプロダクトエンジニアの評価 / Evaluating Product Engineers from a Manager's Perspective
hiro_torii
0
180
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
660
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
420
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
460
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
500
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
Exadata Fleet Update
oracle4engineer
PRO
0
1.1k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
970
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
600
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
180
Design in an AI World
tapps
0
150
The Curious Case for Waylosing
cassininazir
0
240
Are puppies a ranking factor?
jonoalderson
1
2.7k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
97
GitHub's CSS Performance
jonrohan
1032
470k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
260
A Modern Web Designer's Workflow
chriscoyier
698
190k
Six Lessons from altMBA
skipperchong
29
4.2k
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.ʣ͚ʹରԠ͍ͨ͠