計(jì)算機(jī)的基本硬件組成 說(shuō)到計(jì)算機(jī)的基礎(chǔ)原理就躲不過(guò) 圖靈機(jī) 和 馮諾依曼模型常遂。 圖靈機(jī) 定義了 計(jì)算機(jī)是如何進(jìn)行運(yùn)算的, 馮諾依曼模型 則 定義了 計(jì)算機(jī)的基本結(jié)構(gòu)稚疹。 圖靈機(jī)...
計(jì)算機(jī)的基本硬件組成 說(shuō)到計(jì)算機(jī)的基礎(chǔ)原理就躲不過(guò) 圖靈機(jī) 和 馮諾依曼模型常遂。 圖靈機(jī) 定義了 計(jì)算機(jī)是如何進(jìn)行運(yùn)算的, 馮諾依曼模型 則 定義了 計(jì)算機(jī)的基本結(jié)構(gòu)稚疹。 圖靈機(jī)...
Go語(yǔ)言 對(duì)系統(tǒng)調(diào)用的處理 眾所周知病毡,操作系統(tǒng)將內(nèi)存空間分為2部分:內(nèi)核空間啦扬、用戶(hù)空間中狂。 在 內(nèi)核空間 中運(yùn)行的代碼來(lái)源于 操作系統(tǒng)的內(nèi)核 或 外部硬件驅(qū)動(dòng)程序,這類(lèi)代碼直接...
理解 Linux 系統(tǒng)中斷 中斷Interrupt扑毡,在 wikipedia[https://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%B7]...
go unsafe.Pointer 使用 事實(shí)上胃榕,在開(kāi)源代碼中我們會(huì)比較少看到 unsafe.Pointer 的運(yùn)用, 但是在go源碼中你會(huì)發(fā)現(xiàn)大量的 unsafe.Poin...
Go context.WithCancel()源碼剖析 Context 接口 Deadline() 上下文的截止時(shí)間 Done() 上下文是否已關(guān)閉 Err() 上下文關(guān)...
Java函數(shù)性能分析 測(cè)試函數(shù)性能泉褐,比較兩個(gè)函數(shù)的執(zhí)行效率差異是開(kāi)發(fā)時(shí)經(jīng)常面臨的場(chǎng)景赐写,像Go官方提供了 benchmark 工具,那么Java呢膜赃? Java也提供了一款官方的...
Go函數(shù)性能分析 go官方提供了優(yōu)秀的函數(shù)性能測(cè)試工具:benchmark挺邀,讓我們可以更簡(jiǎn)單的分析某一段代碼的執(zhí)行效率。 當(dāng)我們需要分析同一個(gè)功能實(shí)現(xiàn)的兩段不同代碼哪個(gè)執(zhí)行效...
計(jì)算機(jī)基礎(chǔ): 什么樣的代碼能讓CPU運(yùn)行的更快端铛? 眾所周知,程序在計(jì)算機(jī)里運(yùn)行時(shí)疲眷,程序的指令和數(shù)據(jù)存儲(chǔ)在 內(nèi)存 中禾蚕。當(dāng)程序進(jìn)程獲得CPU時(shí)間片時(shí),CPU將會(huì)從 內(nèi)存 中"恢復(fù)...
CPU緩存一致性 通常情況下换淆,CPU單個(gè)時(shí)鐘周期可以執(zhí)行 3~9 個(gè)指令,CPU一次訪問(wèn)內(nèi)存需要 200~300 個(gè)時(shí)鐘周期几颜。于是CPU引入了 CPU Cache 幫助CPU...
計(jì)算機(jī)存儲(chǔ)的層次結(jié)構(gòu) 由于不同介質(zhì)的存儲(chǔ)器讀寫(xiě)效率倍试、造價(jià)差異大,因此通常計(jì)算機(jī)會(huì)同時(shí)采用多種存儲(chǔ)器蛋哭。 一般來(lái)說(shuō)县习,越是靠近CPU的存儲(chǔ)器,所采用的的存儲(chǔ)介質(zhì)成本也越貴谆趾,對(duì)應(yīng)的讀...
馮諾依曼模型 根據(jù) 馮諾依曼模型 的定義,最簡(jiǎn)單的計(jì)算機(jī)基本結(jié)構(gòu)由5部分組成:控制器沪蓬、運(yùn)算器彤钟、存儲(chǔ)器、輸入怜跑、輸出样勃。 在現(xiàn)代計(jì)算機(jī)中吠勘,控制器和運(yùn)算器都是內(nèi)嵌在CPU中,而存儲(chǔ)器...
理解linux inode linux中文件存儲(chǔ)在磁盤(pán)上峡眶,文件內(nèi)容劃分為2部分進(jìn)行存儲(chǔ):文件元數(shù)據(jù)剧防、文件內(nèi)容數(shù)據(jù)。 文件元數(shù)據(jù) 儲(chǔ)存在 inode table 中辫樱,文件內(nèi)容數(shù)...
Go內(nèi)存對(duì)齊對(duì)性能的影響 CPU 訪問(wèn)內(nèi)存時(shí)峭拘,并不是逐個(gè)字節(jié)訪問(wèn),而是以字長(zhǎng)為單位狮暑。32位CPU的字長(zhǎng)是4字節(jié)鸡挠,64位CPU的字長(zhǎng)是8字節(jié)。CPU 始終以字長(zhǎng)訪問(wèn)內(nèi)存搬男,如果不...
Go:for 與 range 的性能比較 明顯可以看出拣展, for 比 range 更高效 原因是 range 每次迭代都會(huì)對(duì)迭代值進(jìn)行一次拷貝(value) 當(dāng)?shù)嫡純?nèi)存越...
性能分析:benchmark基準(zhǔn)測(cè)試 benchmark(基準(zhǔn)測(cè)試) 可以度量某個(gè)函數(shù)或方法的性能,也就是說(shuō)脖旱,如果我們知道性能的瓶頸點(diǎn)在哪里堪遂,benchmark 是一個(gè)非常好...