第2回 golang 勉強会 in Okinawa Log
こんにちは、かずみんです。
第2回 golang 勉強会 in Okinawa を開催してきたので、簡単にlogを残そうかと。
あんまり、丁寧に書くつもりはない^^;
モクモク会(広島風
基本的にモクモクな雰囲気でした。
お互いすでに知り合いな感じでモクモクと。
package作ってる人、チュートリアル作ってる人、hugoやってる人、がいました。
私は、golangレベルのschedulerについて調べてました。
deep driveするはずだったが、入り口見つけただけで終わりました。
なんせ、英語でも記事が少ないわけで、、、、
compilerも結構読みやすいよ。 記事とコードを読み合わせれば、結構わかりそう。
適当に自分にしかわからない作業logを載せる
# n:m scheduler 古いがこの記事を読む -> https://morsmachine.dk/go-scheduler あまりスケジューリングのことが書いてない -> https://docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sLKhJYD0Y_kqxDv3I3XMw/edit# n:kernel space scheduler m:user space scheduler * そもそも何で必要? -> the Go garbage collectorが動いている時に、他のgolang プログラムは待たなくてはいけないから * 三つの登場人物 - M...OS level thread - P...context switch for scheduling - G...goroutine context switchの数は、start up時にGOMAXPROCにより決定する 一つのMにrunqueがある。そこにgoroutineが後ろから追加されていく LockOSThread...実行するthreadを固定したい時に使用する 実行可能なgoroutineが作成されると、runqueueにpushされる goroutineの実行が終了すると、 goqueueが他のgoqueueのgoroutineを半分盗む goのスケジューラーはプリエンプティブらしい 2時48分にいい記事見つけた -> http://www.cs.columbia.edu/~aho/cs6998/reports/12-12-11_DeshpandeSponslerWeiss_GO.pdf 残り1時間ぐらい。英文なので、読むのに時間がかかるので、図を見た。(怖い githubでgoのコンパイラであるgccgoのコードを眺めた。 こいつ読めばわかるんじゃないかなー↓ https://github.com/golang/gofrontend/blob/8edf085a94579bd819a10f50328233812ceeb950/libgo/runtime/proc.c#L1813-L1859 知識がないので、変数の可読性が......... こいつが優先順位をつけるためにgoroutine structに情報を添付? https://github.com/golang/gofrontend/blob/8edf085a94579bd819a10f50328233812ceeb950/libgo/runtime/proc.c#L2304-L2371 runtime_gogo関数でcontextとgoroutineをつなげている感じとエスパー
LT
私は、
www.slideshare.net
修正。パッケージの内部変数が、他のpackageの関数の挙動を変更する場合があるでした^^
blank importの説明が伝わらなかったですね。(私もあまり理解していないところがあって ...
機能と使用例をごっちゃにしちゃった感じがある。
もう一回、勉強し直して、blogにまとめるといいかもねー
- LT資料は、勉強会中で作成するのが正解かも
アットホームなLTをすればいいのに、イメージトレーニング通りにやちゃって、
KY感あった。
んで、
LTも、聞いてる方の会話なんだなー。と実感(かなり大事
次回
まだ決めてない。 絶対やりますが、2,3か月ぐらいかなー