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
echoサーバーを書いてI/Oと仲良くなる話
Search
kariyayo
April 07, 2017
Programming
3
840
echoサーバーを書いてI/Oと仲良くなる話
kariyayo
April 07, 2017
Tweet
Share
More Decks by kariyayo
See All by kariyayo
MobX の話
kariyayo
0
370
SpringはどうやってDIしているのか? #jjug_ccc
kariyayo
4
3.6k
Apexで複数環境のLambda関数をデプロイする話 #jawsug
kariyayo
1
1.9k
近況報告といろいろ作るのが楽しい話 #yokohama_north
kariyayo
0
870
目指せ3つ星インデックス #yokohama_north
kariyayo
2
830
Spring Boot と Swagger #渋谷java
kariyayo
4
5.8k
Gradleを使えるようになるために
kariyayo
0
93
Other Decks in Programming
See All in Programming
CSC509 Lecture 03
javiergs
PRO
0
330
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
180
Advance Your Career with Open Source
ivargrimstad
0
480
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
980
CSC305 Lecture 03
javiergs
PRO
0
240
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
1k
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
160
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
210
株式会社 Sun terras カンパニーデック
sunterras
0
280
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
10
6.6k
CSC509 Lecture 04
javiergs
PRO
0
300
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
140
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
Site-Speed That Sticks
csswizardry
11
890
Side Projects
sachag
455
43k
A designer walks into a library…
pauljervisheath
209
24k
Writing Fast Ruby
sferik
629
62k
Become a Pro
speakerdeck
PRO
29
5.5k
How STYLIGHT went responsive
nonsquared
100
5.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
A better future with KSS
kneath
239
18k
Agile that works and the tools we love
rasmusluckow
331
21k
Done Done
chrislema
185
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
FDIPαʔόʔΛॻ͍ͯ *0ͱྑ͘ͳΔ 2017/3/25 Yokohama North Meetup ˌ5 #yokohama_north bati (@bati11_)
*0ͷ
*0ͷ • งғؾ͔͠௫Ίͯͳͯͪ͘ΌΜͱ͔ͬͯͳ͔ͬͨ • άάΔͱ৭ʑग़ͯ͘Δ • ৭ʑग़ͯ͘Δ͚Ͳɺେମ6/*9ωοτϫʔΫϓϩάϥϛϯάΛ ࢀরͯ͠Δ • IUUQTXXXBNB[PODPKQ6/*9ωοτϫʔΫϓϩάϥϛϯά7PMωοτϫʔ
Ϋ"1*ιέοτͱ95*8ϦνϟʔυεςΟʔϰϯεEQ • ಡΜͰΈͨ • ϒϩάʹ·ͱΊͨ • IUUQCBUJCMPHIBUFOBCMPHDPNFOUSZ
*0ͷ • ͭͷ*0Ϟσϧ • ϒϩοΩϯά*0 • ϊϯϒϩοΩϯά*0 • *0ଟॏ •
γάφϧۦಈ*0 • ඇಉظ*0
*0ͷ • ͭͷ*0Ϟσϧ • ϒϩοΩϯά*0 • ϊϯϒϩοΩϯά*0 • *0ଟॏ •
γάφϧۦಈ*0 • ඇಉظ*0 今回は話しない
*0ͷ • σʔλಡΈࠐΈ࣌ͷ*0ɺͭͷεςοϓ͔ΒΔ • σʔλΛͭ • Χʔωϧ͔ΒϢʔβʔϓϩάϥϜσʔλΛίϐʔ ͢Δ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
• ಉظ*0ૢ࡞ͱඇಉظ*0ૢ࡞ͷ *0ͷ ಉظI/Oૢ࡞Ͱɺ͜ΕΛཁٻͨ͠ϓϩηε ཁٻͨ͠I/Oૢ࡞͕ྃ͢Δ·ͰϒϩοΫ͢Δ ඇಉظI/Oૢ࡞Ͱɺ͜ΕΛཁٻͨ͠ϓϩηε ϒϩοΫ͠ͳ͍ UNIXωοτϫʔΩϯάϓϩάϥϛϯά ୈ2൛ Vol.1
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ 同期I/O操作
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ 非同期I/O操作
FDIPαʔόʔ
FDIPαʔόʔ • ΫϥΠΞϯτ͔ΒೖྗΛड͚͚ͯɺͦͷ··ฦ͢ αʔόʔ • ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD TJOHMF@FDIP@TFSWFSD • σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
FDIPαʔόʔ • SFBEͰϒϩοΫͯ͠Δ • ҎԼͷͭͷํ๏Ͱରࡦͯ͠ΈΔ • ϒϩοΩϯά*0ͷ··Ϛϧνϓϩηεʹ͢Δ • ϊϯϒϩοΩϯά*0Λ͏ •
*0ଟॏΛ͏
ϒϩοΩϯά*0ͷ·· Ϛϧνϓϩηεʹ͢Δ
ϒϩοΩϯά*0ͷ··Ϛϧνϓϩηεʹ͢Δ • GPSLΛͬͯϚϧνϓϩηεʢϚϧνεϨουͰ ͍͍͚Ͳ$ݴޠͰϚϧνεϨου͔Βͳ͍ʣ • αʔόʔͷϓϩηεͭͰɺͭͷΫϥΠΞϯτʹ ରԠ͢Δ • ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD GPSL@FDIP@TFSWFSD
• σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
ϊϯϒϩοΩϯά*0Λ͏
ϊϯϒϩοΩϯά*0Λ͏ • ιέοτΛϊϯϒϩοΩϯάʹ͓ͯ͘͠ • σʔλಡΈࠐΈ࣌ʹɺσʔλ͕౸ୡ͍ͯ͠ͳ͍߹ϒ ϩοΫͤͣʹ͙͢ʹΤϥʔ͕ฦͬͯ͘Δ • αʔόʔͷϓϩηεͭͰɺෳͷΫϥΠΞϯτʹରԠ ͢Δ •
ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD OPO@CMPDLJOH@FDIP@TFSWFSD • σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
ϊϯϒϩοΩϯά*0Λ͏ • ιέοτΛཧ͢Δͷਏ͍ • ϒϩοΫ͠ͳ͍ͷͰɺσʔλΛͬͯΔ͚ͩͳͷʹ ϓϩάϥϜ͕ϧʔϓ͠ଓ͚ͯ͠·͍$16͕ແବʹͳ Δ • ϓϩηεͰಈ͍͍ͯΔͷͰɺଞͷ*0ͳͲͰϒϩο Ϋ͠ͳ͍Α͏ʹ͠ͳ͍͚ͯ͘ͳ͍
*0ଟॏΛ͏
*0ଟॏΛ͏ • ෳͷιέοτʹରͯ͠σʔλΛͭ • σʔλͷ౸ୡ͕͋ͬͨΒΧʔωϧ͔Βͷ௨Λड͚औΓɺ ͦͷޙσʔλͷಡΈऔΓΛߦ͏ • αʔόʔͷϓϩηεͭͰɺෳͷΫϥΠΞϯτʹରԠ ͢Δ •
ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD FQPMM@FDIP@TFSWFSD • σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
*0ଟॏΛ͏ • *0ଟॏͷγεςϜίʔϧFQPMMҎ֎ʹز͔ͭ͋ ΔʢTFMFDUQPMMͳͲʣ • FQPMM-JOVYґଘɻϓϥοτϑΥʔϜґଘΛٵऩ͠ ͨϥΠϒϥϦͱͯ͠MJCFW͕͋Δ
*0ଟॏΛ͏ • ϓϩηεͰಈ͍͍ͯΔͷͰɺଞͷ*0ͳͲͰϒϩο Ϋ͠ͳ͍Α͏ʹ͠ͳ͍͚ͯ͘ͳ͍ • FQPMM͔Β௨͕དྷͯಡΈࠐΈͰϒϩοΫ͢Δ Մೳੑ͋Γ • ॻ͖ࠐΈ࣌ͷϒϩοΫ •
ϑΝΠϧಡΈࠐΈଞͷ௨৴ʹΑΔϒϩοΫ
ੈͷதͷαʔόʔ
ੈͷதͷαʔόʔ • /PEFKTݩʑMJCFW MJCFJPʢεϨουΛͬͯඇ ಉظ*0ͷΑ͏ʹৼͬͯ͘ΕΔϥΠϒϥϦʣΛͬ ͯͯɺMJCVWมΘͬͨ • ଞͷαʔόʔʁ • ࢀߟࢿྉ
• ϚϧνίΞ࣌ͷαʔόϓϩάϥϛϯάͱ )BTLFMMIUUQXXXJJKBEKQDPNQBOZEFWFMPQNFOUUFDI UFDIXFFLQEGUX@@IBTLFMMQEG
·ͱΊ
·ͱΊ • 6/*9ωοτϫʔΫϓϩάϥϛϯάɺࡉ͘ॻ͍ͯ͋ͬ ͯྑ͔ͬͨʢ*0ͷຊͷҰ෦Ͱ͢ʣ • ωοτϫʔΫͷࣝͱϓϩάϥϛϯάɺͰผ ډ͍ͯ͠Δײ͚֮ͩͬͨͲɺίʔυॻ͍ͨΒྑ͘ ͳΕͨ