Slide 1

Slide 1 text

S E R V E R S I D E S W I F T Λ 
 ͠ ͹ Β ͘ ӡ ༻ ͯ͠ Έ ͨ ࿩ T O K Y O S E R V E R S I D E S W I F T M E E T U P # 8 Yusuke ItoɾനϠΪίʔϙϨʔγϣϯ novi 2017/06/27

Slide 2

Slide 2 text

χϡʔεΩϡϨʔγϣϯApp اۀ޲͚API

Slide 3

Slide 3 text

Minutes(λΠϚʔAppͰ͢)

Slide 4

Slide 4 text

S E R V E R - S I D E S W I F T ӡ ༻ ɾ ࢼ ݧ த ͷ α ʔ Ϗ ε • ΫϩʔϦϯάΛߦͳ͏σʔϞϯ(Ϋϩʔϥʔ) • Ұͭ໨: 30kߦ • ೋͭ໨: 2~3000ߦ • gRPCϕʔεͷαʔόʔ • ͲͪΒ΋Swift 3.1.1Λ࢖༻

Slide 5

Slide 5 text

t r y ! S w i f t ʹ ͯ … RDS ECS(EC2 Container Service)

Slide 6

Slide 6 text

D O C K E R Ͱ C U R L ͕ ಈ ͔ ͳ ͍ ໰ ୊ • cURLΛ࢖͏ϥΠϒϥϦ͕Unknown Error·ͨ͸མͪΔ • URLSession • shiroyagicorp/swift-seeurl • Docker on macOS: ⭕, Docker on AWS(ECS): Crash • Docker → • libcurl4-openssl-devͰ͸ͳ͘libcurl4-gnutls-devΛ࢖͏

Slide 7

Slide 7 text

T I M E Z O N E ܥ A P I ͕ ಈ ͔ ͳ ͍ • TimeZone(abbreviation: "JST") => nil ʹͳΔ • λΠϜκʔϯͷϑΝΠϧ͕DockerΠϝʔδʹೖ͍ͬͯ ͳ͍ • apt install tzdata ͢Δ (SR-4921) • SwfitͷDockerΠϝʔδΛެ͔ࣜΒϑΥʔΫͯࣗ͠෼ Ͱ࡞Δ

Slide 8

Slide 8 text

G R P C α ʔόʔ ͕ མ ͪ Δ • AWS(ECS)ʹஔ͍ͯ1࣌ؒ͘Β͍ͯ͠ΞΫηε͢Δͱؾ ·͙ΕʹམͪΔ • XcodeσόοάϏϧυ&RunͰ࠶ݱ • Address Sanitizer, Thread sanitizer Λ࢖͏ • gRPCϥΠϒϥϦपΓʹ໰୊͋Γͦ͏

Slide 9

Slide 9 text

M Y S Q L ͕ σ ο υ ϩ ο Ϋ • (Swift͸௚઀ؔ܎͋Γ·ͤΜ) • SHOW ENGINE INNODB STATUS ; Ͱ࠷ޙʹى͖ͨ σουϩοΫΛදࣔ • BULK INSERT࣌ͷσουϩοΫͬΆ͍ • ݪҼ: autocommit = 1 or 0; ͷ࢖͍ํ͕ؒҧͬͯͨ

Slide 10

Slide 10 text

ϝϞ Ϧ Ϧ ʔ Ϋ ? • AWS(ECS)্ͰҰ൩ಈ͔͢ 200MB

Slide 11

Slide 11 text

ௐ ࠪ • InstrumentsΛ࢖͏ • Memory Allocationଌఆπʔϧ • Xcodeͷπʔϧ͕࢖͑ͯศར • ϥϯλΠϜ(Linux or Darwin)͕ҧ͏ͷͰͦ͜͸໰୊ • ݪҼ·ͩௐࠪத

Slide 12

Slide 12 text

ผ ͷ α ʔ Ϗ ε Swift 3.1 (3.0.2ͷͱ͖͸͍ࢗͬͯͨ͞ͷͰ҆ఆͨ͠)

Slide 13

Slide 13 text

· ͱ Ί • gRPCϥΠϒϥϦ͸·ͩඍົ • Protocol Buffers͸Α͍(Swift͔Βศརʹ࢖͑Δ) • શੈքతʹSwiftͷӡ༻ϊ΢ϋ΢͕গͳ͍ • Webαʔόʔܥ΋αʔόʔϨεΞʔΩςΫνϟͳΒ͍ ͚Δ͔΋