Исходники и презентации
This commit is contained in:
29
lessons/errors/oom/main.go
Normal file
29
lessons/errors/oom/main.go
Normal file
@ -0,0 +1,29 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
// GOGC=off go run main.go
|
||||
|
||||
var data []byte
|
||||
|
||||
func allocate() {
|
||||
defer func() {
|
||||
fmt.Println(recover())
|
||||
}()
|
||||
|
||||
count := 0
|
||||
|
||||
for {
|
||||
data = make([]byte, 1<<30)
|
||||
for idx := 0; idx < 1<<30; idx += 4096 {
|
||||
data[idx] = 100
|
||||
}
|
||||
|
||||
fmt.Println("allocated GB:", count)
|
||||
count++
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
allocate()
|
||||
}
|
||||
Reference in New Issue
Block a user