diff --git a/lectures/10-runtime/.gdb_history b/lectures/10-runtime/.gdb_history new file mode 100644 index 0000000..fc5962c --- /dev/null +++ b/lectures/10-runtime/.gdb_history @@ -0,0 +1 @@ +bt diff --git a/lectures/10-runtime/example/main.go b/lectures/10-runtime/example/main.go new file mode 100644 index 0000000..691e162 --- /dev/null +++ b/lectures/10-runtime/example/main.go @@ -0,0 +1,12 @@ +package main + +import ( + "fmt" + "os" + "time" +) + +func main() { + fmt.Println(os.Getpid()) + time.Sleep(time.Hour) +} diff --git a/lectures/10-runtime/lecture.slide b/lectures/10-runtime/lecture.slide new file mode 100644 index 0000000..498bab0 --- /dev/null +++ b/lectures/10-runtime/lecture.slide @@ -0,0 +1,34 @@ +low-level +Лекция 9 + +Короткий Фёдор + +* Go runtime + +- Compiler +- GC +- Scheduler + +* Compiler + +- Inlining +- Escape Analysis +- Bound Check Elimination + +* GC + +- STW +- Mark Assist +- Knobs +- Finalizer +- sync.Pool +- Stack Growth +- Write Barrier + +* Scheduler + +- G, M, P model +- Global Run Queue, Local Run Queue +- Knobs +- Runaway threads problem +- runtime.LockOsThread