Go的forcegc

简介: go中的强制垃圾回收

forcegc 是指在Go语言中强制进行垃圾回收(Garbage Collection)的操作。垃圾回收是自动管理内存的机制,由Go语言的运行时系统负责。通常情况下,垃圾回收会根据需要自动触发,以回收不再使用的内存。

然而,有时候我们可能希望手动触发垃圾回收,以便在特定的时间点或场景下释放内存。为了实现这一目的,Go语言提供了 runtime.GC() 函数。调用该函数会显式地触发一次垃圾回收操作。

需要注意的是,强制进行垃圾回收并不总是必要的,因为Go的垃圾回收器通常会根据需要自动进行回收。在大多数情况下,让垃圾回收器自行管理内存是更好的选择。只有在特殊情况下,如对内存占用有严格要求或需要进行性能调优时,才建议使用 forcegc 来手动触发垃圾回收。

package main

import (
    "fmt"
    "runtime"
)

func main() {
    data := make([]byte, 1<<30) // 1GB
    runtime.GC()
    var memStats runtime.MemStats
    runtime.ReadMemStats(&memStats)

    fmt.Printf("Allocated memory: %d bytes\n", memStats.Alloc)
}
目录
相关文章
|
5月前
|
存储 JSON JavaScript
GO中`gjson`的应用和分享
GO中`gjson`的应用和分享
|
7月前
|
人工智能 网络协议 Java
|
8月前
|
JSON Go 数据格式
Go slog
Go slog
123 0
Go slog
|
9月前
|
存储 数据采集 XML
GO中 gjson 的应用和分享
咱们上次分享到使用 GO 爬取静态网页的数据,一起来回顾一下 • 分享静态网页和动态网页的简要说明 • GO 爬取静态网页简单数据 • GO 爬取网页上的图片 • 并发爬取网页上的资源
GO中 gjson 的应用和分享
|
9月前
|
安全 Java 编译器
Go到底能不能实现安全的双检锁?1
Go到底能不能实现安全的双检锁?1
69 0
|
9月前
|
缓存 安全 编译器
Go到底能不能实现安全的双检锁?2
Go到底能不能实现安全的双检锁?2
53 0
|
10月前
|
编译器 Go
go:linkname
go:linkname
67 2
|
11月前
|
安全 编译器 Go
关于Go你不得不知道的小技巧1
关于Go你不得不知道的小技巧
57 0
|
11月前
|
存储 JSON 安全
关于Go你不得不知道的小技巧2
关于Go你不得不知道的小技巧2
76 0
|
安全 Java Go
Go | 讲解GOROOT、GOPATH、GOBIN
Go | 讲解GOROOT、GOPATH、GOBIN
173 0