Tomo-9925 / cnet

Controlling and logging communication of process in Docker container
2 stars 0 forks source link

メモリ領域を考えたパフォーマンスチューニング #43

Open masibw opened 3 years ago

masibw commented 3 years ago

42 でもまだ満足いかなければ変数がどこに保存されているかを考えるパフォーマンスチューニングを行うのも検討するべきかなと

Goのメモリ領域

スタック

関数内での宣言など,消して良いタイミングがわかっているものはスタックに詰まれます.

ヒープ

グローバル変数やコンパイラがスタックにおいていいか判断できなかったものはヒープにおかれます.

GoのGC

Stop the worldと呼ばれていて,GCが走るときにはプログラムがとまります.ヒープがいっぱいになるとGCが走るのでスタック領域に保存されるようにチューニングする感じです

確認方法

-gcflags '-m' をつけてbuildする やってみたんですが, cnet/*.go と指定するタイプでは他のパッケージまで見てくれないのか一つ一つやる必要がありそうでした

(そんなに効果あるかわからないですし闇な気がするのでできればやりたくない...)