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

怎么在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ā)
四虎影院成人精品久久| 日本韩国精品视频在线| 老色鬼久久亚洲av综合| 亚洲日本国产一区二区| 少妇高潮试看二十分钟| 日韩免费av在线网站| 曰韩av毛片在线观看| 在线播放av男人的天堂| 欧美大吊视频在线观看| 国产一区二区日本在线| 欧美日韩一级一区二区三区| 国产传媒网站在线观看| 一区二区三区中文在线播放| 永久永久免费黄色一级片| 午夜福利欧美日本视频| 亚洲欧洲美洲中文天堂| 亚洲社区一区二区三区四区| 97视频精品全部免费观看| 国产亚洲精品久在线| 色综合色综合蘑菇在线| 日韩精品一区二区视频| 久久精品国产亚洲av品| 欧美高清在线观看一区二区| 日本一区二区中文字幕视频| 日韩一区二区精品网站| 成人免费激情在线观看| 不卡的视频在线观看| 国产91在线一区精品| 日本熟女中文字幕一区| 妇女人妻丰满少妇中文字幕| 国产亚洲中文字幕91| 国产精品一区二区日韩新区| 国产精品一级性生活片| 99热免费精品在线观看| 亚洲精品不卡在线观看| 亚洲欧美丝袜清纯另类| 日韩视频看看色网站| 亚洲成人黄色在线网站| 欧美亚洲一区二区三区精品| 国产乱子一区二区三区| 97门久欧美日韩久久|