Slide 1

Slide 1 text

goroutineͷ࢓૊Έʹ͍ͭͯ ~Go Conference 2021 Autumn~ 

Slide 2

Slide 2 text

w 5BLVNB4IJCVZB!TJWDIBSJ w ଔ$ZCFS"HFOU ༧ఆ  w όοΫΤϯυΤϯδχΞ w MJOUFS 044͕޷͖  ࣗݾ঺հ

Slide 3

Slide 3 text

w (PͷSVOUJNFΛࢧ͑Δཁૉ w HPSPVUJOFͷϥΠϑλΠϜ w HPSPVUJOFͷεέδϡʔϦϯά  ࿩͢͜ͱ

Slide 4

Slide 4 text

~Let's Go~ 

Slide 5

Slide 5 text

~GoͷruntimeΛࢧ͑Δཁૉ~ 

Slide 6

Slide 6 text

w (HPSPVUJOF w .ϚγϯεϨου w 1HPSPVUJOFΛ࣮ߦ͢ΔϦιʔε w TDIFEάϩʔόϧͰϢχʔΫɺશͯͷ1Ͱڞ༗͞ΕΔ  ొ৔ਓ෺

Slide 7

Slide 7 text

 શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (

Slide 8

Slide 8 text

 શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (

Slide 9

Slide 9 text

w NH ( Λ࣮ߦ͍ͯ͠ΔN .  w TDIFE1$ͳͲͷ஋Λอ࣋͢ΔελοΫ w BUPNJDTUBUVTHPSPVUJOFͷঢ়ଶ ͭ  w HPQDHPSPVUJOFΛੜ੒ͨ͠HPͷ1$ w TUBSUQDHPSPVUJOFͷ1$  G

Slide 10

Slide 10 text

 શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (

Slide 11

Slide 11 text

w HεέδϡʔϥʔͷͨΊͷHPSPVUJOF w DVSHݱࡏ࣮ߦ͍ͯ͠ΔHPSPVUJOF w Q(PͷίʔυΛ࣮ߦ͢ΔͨΊʹඥͮ͘Q 1  M

Slide 12

Slide 12 text

 શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (

Slide 13

Slide 13 text

w NQ 1 ʹඥͮ͘N .  w SVOR1͝ͱʹอ࣋͢ΔH ( ͷMPDBMRVFVF w HGSFF࣮ߦ͍ͯ͠ͳ͍ར༻ՄೳͳH (  P

Slide 14

Slide 14 text

 શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (

Slide 15

Slide 15 text

w NJEMFJEMFͷN . Λอ࣋ w QJEMFJEMFͷQ 1 Λอ࣋ w SVOR H ( Λอ࣋͢ΔHMPCBMRVFVF  sched

Slide 16

Slide 16 text

~goroutineͷϥΠϑλΠϜ~ 

Slide 17

Slide 17 text

 αϯϓϧίʔυ

Slide 18

Slide 18 text

 newproc . 1 ( SVOR $SFBUFHPSPVUJOF

Slide 19

Slide 19 text

 newproc1 ( . 1 ( SVOR

Slide 20

Slide 20 text

 newproc ( . 1 ( SVOR

Slide 21

Slide 21 text

 runqput ( . 1 ( SVOR (

Slide 22

Slide 22 text

 runqputslow TDIFE . 1 ( SVOR (

Slide 23

Slide 23 text

 globruqputbatch TDIFE . 1 ( SVOR ( (

Slide 24

Slide 24 text

~goroutineͷεέδϡʔϦϯά~ 

Slide 25

Slide 25 text

 schedule TDIFE . 1 ( SVOR (

Slide 26

Slide 26 text

 globrunqget TDIFE ( . 1 ( SVOR (

Slide 27

Slide 27 text

 schedule . 1 ( SVOR (

Slide 28

Slide 28 text

 runqget ( . 1 ( SVOR (

Slide 29

Slide 29 text

 schedule . 1 ( SVOR

Slide 30

Slide 30 text

 fi ndrunnable ( *0 ❌ @(XBJUJOH@(SVOOBCMF ( . 1 ( SVOR

Slide 31

Slide 31 text

 1 . ( SVOR 1 . ( SVOR ( ( ( ( ( ( fi ndrunnable

Slide 32

Slide 32 text

 stealWork/runqsteal 1 . ( SVOR 1 ( SVOR ( ( ( ( ( ( ( ( ( .

Slide 33

Slide 33 text

 execute ( . 1 ( SVOR

Slide 34

Slide 34 text

 goexit ( . 1 ( SVOR

Slide 35

Slide 35 text

 goexit1 ( . 1 ( SVOR

Slide 36

Slide 36 text

 mcall ( . 1 ( SVOR

Slide 37

Slide 37 text

 UPHGSFF goexit0 ( . 1 ( SVOR

Slide 38

Slide 38 text

 αϯϓϧίʔυ IUUQTQMBZHPMBOHPSHQX81SL$YO)G

Slide 39

Slide 39 text

w (P͸ಠࣗͷεέδϡʔϥʔͰHPSPVUJOFΛ੍ޚ͍ͯ͠Δ w ֤1͕SVORΛ࣋ͭ͜ͱͰϓϩάϥϜͷޮ཰͕ߴ·Δ w ෳࡶͳ࣮૷ͷ͓͔͛Ͱ؆୯ʹฒߦॲཧΛ࣮૷Ͱ͖Δ  ·ͱΊ

Slide 40

Slide 40 text

~Tank you for watching~