介紹 編寫 Go 代碼不需要像寫 C/C++ 那樣手動(dòng)的 malloc和 free內(nèi)存,因?yàn)?malloc 操作由 Go 編譯器的逃逸分析機(jī)制幫我們加上了,而 free 動(dòng)作...
介紹 編寫 Go 代碼不需要像寫 C/C++ 那樣手動(dòng)的 malloc和 free內(nèi)存,因?yàn)?malloc 操作由 Go 編譯器的逃逸分析機(jī)制幫我們加上了,而 free 動(dòng)作...
介紹 Go 語(yǔ)言較之 C 語(yǔ)言一個(gè)很大的優(yōu)勢(shì)就是自帶 GC 功能,可 GC 并不是沒(méi)有代價(jià)的。寫 C 語(yǔ)言的時(shí)候,在一個(gè)函數(shù)內(nèi)聲明的變量,在函數(shù)退出后會(huì)自動(dòng)釋放掉,因?yàn)檫@些變...
雖然Golang的GC自打一開始,就被人所詬病,但是經(jīng)過(guò)這么多年的發(fā)展,Golang的GC已經(jīng)改善了非常多,變得非常優(yōu)秀了。 以下是Golang GC算法的里程碑: v1.1...
介紹 了解操作系統(tǒng)對(duì)內(nèi)存的管理機(jī)制后,現(xiàn)在可以去看下 Go 語(yǔ)言是如何利用底層的這些特性來(lái)優(yōu)化內(nèi)存的。Go 的內(nèi)存管理基本上參考 tcmalloc 來(lái)實(shí)現(xiàn)的,只是細(xì)節(jié)上根據(jù)自...
介紹 當(dāng)我解決問(wèn)題時(shí),尤其是新問(wèn)題,我不會(huì)一上來(lái)就想著能不能使用并發(fā)來(lái)處理。我會(huì)首先想出一個(gè)順序執(zhí)行的解決方案。然后在可讀性和技術(shù)評(píng)審后,我會(huì)開始考慮并發(fā)處理能不能讓問(wèn)題得到...
介紹 上一篇文章我對(duì)操作系統(tǒng)級(jí)別的調(diào)度進(jìn)行了講解,這對(duì)理解 Go 語(yǔ)言的調(diào)度器是很重要的。這篇文章,我將解釋下 Go 語(yǔ)言的調(diào)度器是如何工作的。依舊專注在上層抽象的基本概念上...
調(diào)度相關(guān)的一系列文章主要參考 Scheduling In Go : Part I - OS Scheduler 翻譯來(lái)的。因?yàn)樵趯W(xué)習(xí)的過(guò)程中偶然發(fā)現(xiàn),感覺(jué)總結(jié)得蠻好的,就不造...
介紹 要搞明白 Go 語(yǔ)言的內(nèi)存管理,就必須先理解操作系統(tǒng)以及機(jī)器硬件是如何管理內(nèi)存的。因?yàn)?Go 語(yǔ)言的內(nèi)部機(jī)制是建立在這個(gè)基礎(chǔ)之上的,它的設(shè)計(jì),本質(zhì)上就是盡可能的會(huì)發(fā)揮操...
這部分看的是 golang1.2 的源碼(其實(shí)是 3 年前看的,最近又拿出來(lái)復(fù)習(xí)整理了下),C語(yǔ)言實(shí)現(xiàn)的。 如果只是為了學(xué)習(xí),而不是為了實(shí)際參與項(xiàng)目的開發(fā),還是建議閱讀低版本...
原文地址: Allocation Efficiency in High-Performance Go Services, 沒(méi)有原模原樣的翻譯, 但不影響理解。 關(guān)于工具 我們...
先拋出幾個(gè)問(wèn)題 聲明一個(gè) slice 并賦值為 nil, 如 var slice []int = nil,此時(shí) len(slice) 的運(yùn)行結(jié)果是什么? func(arr [...