欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么在golang中釋放map內(nèi)存-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)建站是專業(yè)的高昌網(wǎng)站建設(shè)公司,高昌接單;提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行高昌網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

怎么在golang中釋放map內(nèi)存?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

golang釋放map內(nèi)存的方法:首先刪除map中的所有key,map占用內(nèi)存仍處于【使用狀態(tài)】;然后map置為nil,map占用的內(nèi)存處于【空閑狀態(tài)】;最后處于空閑狀態(tài)內(nèi)存,一定時(shí)間內(nèi)在下次申請(qǐng)的可重復(fù)被使用,不必再向操作系統(tǒng)申請(qǐng)即可。

golang釋放map內(nèi)存的方法:

示例代碼:
go version: 1.12.9

package main
import (
    "log"
    "runtime"
)
var intMap map[int]int
var cnt = 8192
func main() {
    printMemStats()
    initMap()
    runtime.GC()
    printMemStats()
    log.Println(len(intMap))
    for i := 0; i < cnt; i++ {
        delete(intMap, i)
    }
    log.Println(len(intMap))
    runtime.GC()
    printMemStats()
    intMap = nil
    runtime.GC()
    printMemStats()
}
func initMap() {
    intMap = make(map[int]int, cnt)
    for i := 0; i < cnt; i++ {
        intMap[i] = i
    }
}
func printMemStats() {
    var m runtime.MemStats
    runtime.ReadMemStats(&m)
    log.Printf("Alloc = %v TotalAlloc = %v Sys = %v NumGC = %v\n", m.Alloc/1024, m.TotalAlloc/1024, m.Sys/1024, m.NumGC)
}

輸出結(jié)果:

2019/11/22 15:42:33 Alloc = 138 TotalAlloc = 138 Sys = 68290 NumGC = 0
2019/11/22 15:42:33 Alloc = 456 TotalAlloc = 460 Sys = 68610 NumGC = 1
2019/11/22 15:42:33 8192
2019/11/22 15:42:33 0
2019/11/22 15:42:33 Alloc = 458 TotalAlloc = 464 Sys = 68674 NumGC = 2
2019/11/22 15:42:33 Alloc = 146 TotalAlloc = 466 Sys = 68674 NumGC = 3

字段說明:

  • Alloc:     當(dāng)前堆上對(duì)象占用的內(nèi)存大小;

  • TotalAlloc:堆上總共分配出的內(nèi)存大小;

  • Sys:       程序從操作系統(tǒng)總共申請(qǐng)的內(nèi)存大小;

  • NumGC:     垃圾回收運(yùn)行的次數(shù)。

從運(yùn)行結(jié)果可以看出,map中的key被刪除以后占用的內(nèi)存并沒有被釋放掉。

結(jié)論:
golang的map在key被刪除之后,并不會(huì)立即釋放內(nèi)存,所以隨著程序的運(yùn)行,實(shí)際上map占用的內(nèi)存只會(huì)越來越大。此外,GC會(huì)在標(biāo)記階段訪問map中的每一個(gè)元素,當(dāng)map非常大時(shí)這會(huì)對(duì)程序性能帶來非常大的開銷。不過go 1.5版本之后,如果map的key和value中都不包含指針,那么GC會(huì)忽略這個(gè)map。

看完上述內(nèi)容,你們掌握怎么在golang中釋放map內(nèi)存的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

本文題目:怎么在golang中釋放map內(nèi)存-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://aaarwkj.com/article10/cdpddo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)面包屑導(dǎo)航、外貿(mào)建站服務(wù)器托管、Google、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
日本一区二区最新免费| 青青草原成年人免费看| 久久精品亚洲一区二区| 不卡一区二区国产精品| 相泽南亚洲一区二区在线播放| 综合久久精品亚洲天堂| 日本特黄特黄录像在线| 成年人网站一级黄色免费| 久久综合视频大片视频| 长腿丝袜美女亚洲一区二区| 精品成人在线一区二区| 国产精品久久99一区| 亚洲精品网址一区二区| 日韩电影中文字幕一区| 亚洲精品影视一区二区| 国产精品毛片一区内射| 中文字幕人妻久久精品一区| 懂色av中文一区二区| 粉嫩av一区二区三区四区| 国产精品毛片一区二区三区| 国产精品青青在线观看爽香蕉| 精品一区二区日本高清| 2004年亚洲中文字幕| 国产精品日本一区二区| 日韩精品日本道欧美黄片| 亚洲av永久精品一区二区三区| 成人高清乱码一区二区三区| 国产免费成人黄视频网站| 粗暴蹂躏中文一区二区三区| 成熟人妻一区二区三区人妻| 欧美人与性禽动交情品| 亚洲国产传媒在线观看| 在线观看亚洲激情av| 国产精品熟女在线视频| 视频免费观看网站不卡| 欧美高清一区二区三区不卡| 精品欧美不卡在线播放| 日本一区二区三区视频| 亚洲成人av在线蜜桃| 夫妻在线观看高清视频| 亚洲中文字幕精品一区二区三区|