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
610
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
590
PHPerだってPHPから「OKグーグル」したい!
hnw
1
2.4k
Other Decks in Technology
See All in Technology
WEBサービスを成り立たせるAWSサービス
takano0131
1
180
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
370
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
320
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2.1k
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
150
Digitization部 紹介資料
sansan33
PRO
1
5.6k
組織改革から開発効率向上まで! - 成功事例から見えたAI活用のポイント - / 20251016 Tetsuharu Kokaki
shift_evolve
PRO
1
160
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
14k
RDS の負荷が高い場合に AWS で取りうる具体策 N 連発/a-series-of-specific-countermeasures-available-on-aws-when-rds-is-under-high-load
emiki
7
4.2k
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
310
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
310
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Unsuck your backbone
ammeep
671
58k
Visualization
eitanlees
149
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
RailsConf 2023
tenderlove
30
1.3k
Building Adaptive Systems
keathley
44
2.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
BBQ
matthewcrist
89
9.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
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.ʣ͚ʹରԠ͍ͨ͠