第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

運(yùn)行時(shí):內(nèi)存不足但仍有內(nèi)存

運(yùn)行時(shí):內(nèi)存不足但仍有內(nèi)存

Go
莫回?zé)o 2023-05-08 14:59:41
最近發(fā)生了一個(gè)非常奇怪的問(wèn)題。我的程序在一個(gè)有 8GB 內(nèi)存的 docker 上運(yùn)行,當(dāng)發(fā)生恐慌時(shí)使用了 4GB。有超過(guò) 4GB 的可用內(nèi)存,為什么會(huì)發(fā)生這種情況?下面是恐慌堆棧輸出。# ulimit -munlimited# go version1.6.2我嘗試反復(fù)運(yùn)行代碼行g(shù)etAllCombinationComplex,內(nèi)存使用量增長(zhǎng)到大約 5GB,但恐慌并沒(méi)有再次發(fā)生。fatal error: runtime: out of memoryruntime stack:runtime.throw(0xd28a90, 0x16)        /usr/local/go1.6.2/src/runtime/panic.go:547 +0x90runtime.sysMap(0xf409e80000, 0x3ecc390000, 0x434a00, 0x1080918)        /usr/local/go1.6.2/src/runtime/mem_linux.go:206 +0x9bruntime.(*mheap).sysAlloc(0x1066280, 0x3ecc390000, 0xdfc4d6d680)        /usr/local/go1.6.2/src/runtime/malloc.go:429 +0x191runtime.(*mheap).grow(0x1066280, 0x1f661c8, 0x0)        /usr/local/go1.6.2/src/runtime/mheap.go:651 +0x63runtime.(*mheap).allocSpanLocked(0x1066280, 0x1f661c4, 0x10677f0)        /usr/local/go1.6.2/src/runtime/mheap.go:553 +0x4f6runtime.(*mheap).alloc_m(0x1066280, 0x1f661c4, 0xffffff0100000000, 0x7ff85dbfddd0)        /usr/local/go1.6.2/src/runtime/mheap.go:437 +0x119runtime.(*mheap).alloc.func1()        /usr/local/go1.6.2/src/runtime/mheap.go:502 +0x41runtime.systemstack(0x7ff85dbfdde8)        /usr/local/go1.6.2/src/runtime/asm_amd64.s:307 +0xabruntime.(*mheap).alloc(0x1066280, 0x1f661c4, 0x10100000000, 0x41587c)        /usr/local/go1.6.2/src/runtime/mheap.go:503 +0x63runtime.largeAlloc(0x3ecc386800, 0x7ff800000000, 0x6)        /usr/local/go1.6.2/src/runtime/malloc.go:766 +0xb3runtime.mallocgc.func3()        /usr/local/go1.6.2/src/runtime/malloc.go:664 +0x33runtime.systemstack(0xc820028000)        /usr/local/go1.6.2/src/runtime/asm_amd64.s:291 +0x79runtime.mstart()        /usr/local/go1.6.2/src/runtime/proc.go:1051
查看完整描述

1 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

分析堆棧跟蹤,看起來(lái)您正試圖在此處分配一個(gè)太大的切片:db_template.XCludeList.getAllCombinationComplex()


indexdb/db_template.XCludeList.getAllCombinationComplex(0xea4382c480, 0x8, 0x9, 0xe4ec1dc460, 0x4, 0x4, 0x0, 0x0, 0x0)

    /home/scmbuild/workspaces_cluster/index/src/indexdb/db_template/db.go:145 +0x371 fp=0xea27f3ca88 sp=0xea27f3c900

這稱為runtime.makeslice():


runtime.makeslice(0xa38840, 0x3ecc38680, 0x3ecc38680, 0x0, 0x0, 0x0)

    /usr/local/go1.6.2/src/runtime/slice.go:32 +0x165 fp=0xea27f3c900 sp=0xea27f3c8b0

Go 1.6的源代碼runtime.makeslice()在這里:slice.go:


func makeslice(t *slicetype, len64, cap64 int64) slice {

    ...

}

它是用參數(shù)調(diào)用的:


runtime.makeslice(0xa38840, 0x3ecc38680, 0x3ecc38680, 0x0, 0x0, 0x0)

第二個(gè)值是長(zhǎng)度,即


0x3ecc38680 = 16857138816

您試圖創(chuàng)建一個(gè)包含超過(guò) 16*10 9 個(gè)元素的切片。如果切片的元素類型需要至少 1 個(gè)字節(jié)(不包括零大小的類型),則大約為 16 GB!這只是一個(gè)較低的估計(jì)。顯然,在 8 GB 可用 RAM 的情況下,此操作無(wú)法成功。


另外,請(qǐng)更新您的 Go,1.6.2 已經(jīng)快 3 年了,不再受支持(甚至沒(méi)有收到安全補(bǔ)?。?/p>


查看完整回答
反對(duì) 回復(fù) 2023-05-08
  • 1 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)