1.開(kāi)場(chǎng)白環(huán)境:處理器架構(gòu):arm64內(nèi)核源碼:linux-5.11ubuntu版本:20.04.1代碼閱讀工具:vimctagscscope我們知道,linux系統(tǒng)中用戶(hù)空間和內(nèi)核空間是隔離的,用戶(hù)空間程序不能隨意的訪(fǎng)問(wèn)內(nèi)核空間數(shù)據(jù),只能通過(guò)中斷或者異常的方式進(jìn)入內(nèi)核態(tài),一般情...
來(lái)源:Github-stackoverflow-top-cpp這是一個(gè)C/C難題清單,題源來(lái)自Github的stackoverflow-top-cpp。這個(gè)題庫(kù)精選并總結(jié)了StackOverflow上的高贊回答,可以測(cè)試你有多了解C/C,刷新你的知識(shí),或者幫助你的coding面試...
隨著C項(xiàng)目的持續(xù)擴(kuò)大,編譯效率越來(lái)越是一個(gè)問(wèn)題了。想一想你每天花在這上面的時(shí)間,再乘以團(tuán)隊(duì)成員的個(gè)數(shù),是不是成本很高?那有沒(méi)有什么辦法,在不需要修改源碼,也不更換硬件的情況下提升效率呢?一起來(lái)看看下面這幾個(gè)方法,足以讓你的編譯速度飛起來(lái)。先隨便下載一個(gè)第三方源碼,例如:spdlo...
vmmap是sysinternals工具集中的一個(gè)工具,主要用于分析一個(gè)進(jìn)程的虛擬內(nèi)存和物理內(nèi)存的使用情況。更有效的是,可以通過(guò)對(duì)比兩個(gè)不同時(shí)間的內(nèi)存使用情況的Snapshot,來(lái)查找內(nèi)存泄露問(wèn)題。vmmap介紹當(dāng)你用vmmap去查看一個(gè)正在運(yùn)行的進(jìn)程的時(shí)候??梢钥吹饺缦聢D,不同...
Breakpad是Google用C編寫(xiě)的一個(gè)開(kāi)源、跨平臺(tái)的崩潰報(bào)告系統(tǒng),它支持Windows、Linux和macOS,并提供了一個(gè)上傳器,可以在進(jìn)程崩潰時(shí)向一個(gè)配置好的URL提交minidump文件。目前,有很多大型項(xiàng)目都在使用Breakpad,例如:GoogleChrome、F...
小木發(fā)現(xiàn)線(xiàn)上的程序通過(guò)任務(wù)管理器發(fā)現(xiàn)內(nèi)存不斷的增長(zhǎng),懷疑是不是內(nèi)存泄漏呢?用戶(hù)態(tài)內(nèi)存泄漏可能是句柄泄漏,堆內(nèi)存泄露,Socket,?GDI對(duì)象等等。而對(duì)于C程序員來(lái)說(shuō),碰到最多的無(wú)疑是堆內(nèi)存泄露:也就是通過(guò)malloc或者new從堆上申請(qǐng)的內(nèi)存,使用完成后,并沒(méi)有釋放,導(dǎo)致程序使...
昨天在群里有朋友問(wèn):把進(jìn)程綁定到某個(gè)CPU上運(yùn)行是怎么實(shí)現(xiàn)的。首先,我們先來(lái)了解下將進(jìn)程與CPU進(jìn)行綁定的好處。進(jìn)程綁定CPU的好處:在多核CPU結(jié)構(gòu)中,每個(gè)核心有各自的L1、L2緩存,而L3緩存是共用的。如果一個(gè)進(jìn)程在核心間來(lái)回切換,各個(gè)核心的緩存命中率就會(huì)受到影響。相反如果進(jìn)...
我從業(yè)多年,有參加過(guò)面試,有面試過(guò)別人,經(jīng)歷過(guò)的面試不下百場(chǎng)。在字節(jié)跳動(dòng)的時(shí)候,作為資深面試官,深度參與校招和社招。很多人問(wèn)我,面試到底考察什么?面試官究竟想聽(tīng)到怎樣的回答?針對(duì)這類(lèi)疑惑,我覺(jué)得最好的解答,無(wú)疑是帶著大家,以面試官視角,去進(jìn)行面試,知己知彼,百戰(zhàn)不殆,這就是我寫(xiě)這...
大家好,我是小林。初入職場(chǎng),工作的內(nèi)容和自己的期待,難免會(huì)有一些坎坷和小失落,特別是,進(jìn)入一家牛逼的公司,以為可以干點(diǎn)牛逼的事,結(jié)果分配到的業(yè)務(wù),和自己的期待落差太大。今天,給大家分享一篇文章,一位畢業(yè)半年的碩士,辭職找工作的社招經(jīng)歷。他基本拿到了國(guó)內(nèi)的一線(xiàn)大廠(chǎng)的offer,但是...
大家好,我是小林哥。雖說(shuō)Redis是內(nèi)存數(shù)據(jù)庫(kù),但是它為數(shù)據(jù)的持久化提供了兩個(gè)技術(shù)。分別是「AOF日志和RDB快照」。這兩種技術(shù)都會(huì)用各用一個(gè)日志文件來(lái)記錄信息,但是記錄的內(nèi)容是不同的。AOF文件的內(nèi)容是操作命令;RDB文件的內(nèi)容是二進(jìn)制數(shù)據(jù)。關(guān)于A(yíng)OF持久化的原理我在上一篇已經(jīng)...
大家好,我是小林。今天跟大家聊聊《深入理解計(jì)算系統(tǒng)》,這本書(shū)的英文全稱(chēng)叫:ComputerSystem:Aprogramerperspective英文名翻譯過(guò)來(lái)是「程序員視角下的計(jì)算機(jī)系統(tǒng)」,也被簡(jiǎn)稱(chēng)為?CSAPP??赡艽蠹乙詾檫@本書(shū)是講操作系統(tǒng)的,我最開(kāi)始也以為是這樣。后面當(dāng)我...
大家好,我是小林哥。之前看網(wǎng)上看到這文章,作者描述了兩家公司的工作感受。已經(jīng)工作的小伙伴看完應(yīng)該會(huì)感同身受,當(dāng)然,沒(méi)有工作的小伙伴,也可以大體了解一下程序員的工作環(huán)境,對(duì)大家以后還是有幫助的。有人的地方就有江湖,就有人情世故,就算在大廠(chǎng)工作,技術(shù)是很重要,但不是最重要的(懂的人自...
跳躍鏈表及其應(yīng)用是非常熱門(mén)的問(wèn)題,面試時(shí)也非常常問(wèn),深入了解其中奧秘大有裨益,不吹了,直接開(kāi)始!跳躍鏈表的基本概念初識(shí)跳表跳躍列表是一種數(shù)據(jù)結(jié)構(gòu)。它允許快速查詢(xún)一個(gè)有序連續(xù)元素的數(shù)據(jù)鏈表。跳躍列表的平均查找和插入時(shí)間復(fù)雜度都是O(logn),優(yōu)于普通隊(duì)列的O(n)。跳躍列表由威廉...
大家好哇~歡迎來(lái)我的神奇的“科普”頻道!今天,我們?yōu)榇蠹医榻B程序員是如何怎么存檔并管理文件版本的。大家要做好心理準(zhǔn)備,今天的“科普”稍有點(diǎn)點(diǎn)硬核,我想從需求分析,產(chǎn)品設(shè)計(jì),代碼實(shí)現(xiàn)等全方位角度為大家“科普”,綜合的東西較多,可能不太好看懂......但內(nèi)容應(yīng)該還是有點(diǎn)點(diǎn)意思的,畢...
大家好,我是小林。之前有讀者問(wèn)了我這么個(gè)問(wèn)題:大致問(wèn)題是,TCP的Keepalive和HTTP的Keep-Alive是一個(gè)東西嗎?這是個(gè)好問(wèn)題,應(yīng)該有不少人都會(huì)搞混,因?yàn)檫@兩個(gè)東西看上去太像了,很容易誤以為是同一個(gè)東西。事實(shí)上,這兩個(gè)完全是兩樣不同東西,實(shí)現(xiàn)的層面也不同:HTTP...