花了一下午(或一天)在試圖解決某個(gè)Bug,后來(lái)才知道解決方案很簡(jiǎn)單,當(dāng)時(shí)就是沒(méi)有想到。有個(gè)同事正好路過(guò),看到你愁眉苦臉的,問(wèn)你“怎么了呀?”“噢,是這樣的。我遇到了一個(gè)問(wèn)題,點(diǎn)擊這個(gè)控件的時(shí)……”當(dāng)你正準(zhǔn)備和同事詳細(xì)解釋的時(shí)候,突然靈光一現(xiàn),你話(huà)都沒(méi)說(shuō)完,就中斷了和同事的傾訴,繼...
導(dǎo)讀:對(duì)于工程經(jīng)驗(yàn)比較豐富的同學(xué),并發(fā)應(yīng)該也并不是陌生的概念了,但是每個(gè)人所理解的并發(fā)問(wèn)題,卻又往往并不統(tǒng)一,本文系統(tǒng)梳理了百度C工程師在進(jìn)行并發(fā)優(yōu)化時(shí)所作的工作。一、背景簡(jiǎn)單回顧一下,一個(gè)程序的性能構(gòu)成要件大概有三個(gè),即算法復(fù)雜度、IO開(kāi)銷(xiāo)和并發(fā)能力。由于現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)復(fù)雜...
最近在做一個(gè)項(xiàng)目,遇到一個(gè)問(wèn)題,運(yùn)行于ARM上的threadx在與DSP通信采用消息隊(duì)列的方式傳遞消息(最終實(shí)現(xiàn)原理是中斷共享內(nèi)存的方式),在實(shí)際操作過(guò)程中發(fā)現(xiàn)threadx總是crash,于是經(jīng)過(guò)排查,是因?yàn)閭鬟f消息的結(jié)構(gòu)體沒(méi)有考慮字節(jié)對(duì)齊的問(wèn)題。隨手整理一下C語(yǔ)言中字節(jié)對(duì)齊的...
socketfd長(zhǎng)什么樣子?什么是socketfd?粗糙的來(lái)講,就是網(wǎng)絡(luò)fd,比如我們最常見(jiàn)的C/S客戶(hù)端服務(wù)端的編程模式,就是網(wǎng)絡(luò)通信的一種方式。撇開(kāi)底層和協(xié)議細(xì)節(jié),網(wǎng)絡(luò)通信和文件讀寫(xiě)從接口上有本質(zhì)區(qū)別嗎?其實(shí)沒(méi)啥區(qū)別,不就是讀過(guò)來(lái)和寫(xiě)過(guò)去嘛,簡(jiǎn)稱(chēng)IO。我們先看一下socket...
近期遇到一個(gè)問(wèn)題,簡(jiǎn)單點(diǎn)說(shuō),主機(jī)A上顯示一條ESTABLISHED狀態(tài)的TCP連接到主機(jī)B,而主機(jī)B上卻沒(méi)有任何關(guān)于主機(jī)A的連接信息,經(jīng)查明,這是由于主機(jī)A和主機(jī)B的發(fā)送/接收緩沖區(qū)差異巨大,導(dǎo)致主機(jī)B進(jìn)程退出后,主機(jī)A暫時(shí)憋住,主機(jī)B頻繁發(fā)送零窗口探測(cè),F(xiàn)IN_WAIT1狀態(tài)超...
【導(dǎo)語(yǔ)】:開(kāi)源的在線(xiàn)流程圖繪制工具。簡(jiǎn)介Wireflow是一個(gè)免費(fèi)的、開(kāi)源的在線(xiàn)流程圖繪制工具,用于創(chuàng)建漂亮的流程圖,無(wú)需Photoshop技能。支持使用100多種自定義圖形、可進(jìn)行多人協(xié)作、權(quán)限分配、實(shí)時(shí)聊天等功能,并擁有豐富的功能組件庫(kù)。Wireflow的誕生是為了在項(xiàng)目規(guī)劃...
↓推薦關(guān)注↓前言:一直是想知道一條SQL語(yǔ)句是怎么被執(zhí)行的,它執(zhí)行的順序是怎樣的,然后查看總結(jié)各方資料,就有了下面這一篇博文了。本文將從MySQL總體架構(gòu)--->查詢(xún)執(zhí)行流程--->語(yǔ)句執(zhí)行順序來(lái)探討一下其中的知識(shí)。一、MySQL架構(gòu)總覽:架構(gòu)最好看圖,再配上必要的說(shuō)明文字。下圖...
↓推薦關(guān)注↓hi,大家好,由于移動(dòng)互聯(lián)網(wǎng)不斷發(fā)展,導(dǎo)致網(wǎng)絡(luò)流量徒增,推動(dòng)著網(wǎng)絡(luò)技術(shù)不斷地發(fā)展,而CPU的運(yùn)行頻率基本停留在10年前的水平,為了迎接超高速網(wǎng)絡(luò)技術(shù)的挑戰(zhàn),軟件也需要大幅度創(chuàng)新,結(jié)合硬件技術(shù)的發(fā)展,DPDK(DataPlaneDevelopmentKit),一個(gè)以軟件...
↓推薦關(guān)注↓從Linux內(nèi)核3.15開(kāi)始,您可能一直在關(guān)注內(nèi)核社區(qū)中擴(kuò)展的BerkeleyPacketFilter(eBPF)的開(kāi)發(fā),或者您可能仍然將BerkeleyPacketFilter與VanJacobson在1992年所做的工作聯(lián)系起來(lái)。您可能已經(jīng)使用BPF和tcpdum...
↓推薦關(guān)注↓1.PageCache1.1PageCache是什么?為了理解PageCache,我們不妨先看一下Linux的文件I/O系統(tǒng),如下圖所示:Figure1.Linux文件I/O系統(tǒng)上圖中,紅色部分為PageCache??梢?jiàn)PageCache的本質(zhì)是由Linux內(nèi)核管理的...
↓推薦關(guān)注↓看完后不再迷茫!在校學(xué)生的編程語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)還不錯(cuò),我認(rèn)為應(yīng)該在《操作系統(tǒng)》和《計(jì)算機(jī)體系結(jié)構(gòu)》這兩門(mén)課上下功夫,然后才去讀編程方面的APUE、UNP等書(shū)。下面簡(jiǎn)單談?wù)勎覍?duì)學(xué)習(xí)這兩門(mén)課的看法和建議,都是站在服務(wù)端程序員的角度,從實(shí)用主義(pragmatic)的立...
socketfd長(zhǎng)什么樣子?什么是socketfd?粗糙的來(lái)講,就是網(wǎng)絡(luò)fd,比如我們最常見(jiàn)的C/S客戶(hù)端服務(wù)端的編程模式,就是網(wǎng)絡(luò)通信的一種方式。撇開(kāi)底層和協(xié)議細(xì)節(jié),網(wǎng)絡(luò)通信和文件讀寫(xiě)從接口上有本質(zhì)區(qū)別嗎?其實(shí)沒(méi)啥區(qū)別,不就是讀過(guò)來(lái)和寫(xiě)過(guò)去嘛,簡(jiǎn)稱(chēng)IO。我們先看一下socket...
↓推薦關(guān)注↓hi,大家好,內(nèi)存拷貝是比較耗時(shí)操作,零拷貝是常用優(yōu)化手段,今天分享的文章就是Linux系統(tǒng)零拷貝技術(shù),Kafka和MySQL開(kāi)源組件都用到這個(gè)核心技術(shù),希望大家可以掌握。DMA與零拷貝技術(shù)注意事項(xiàng):除了DirectI/O,與磁盤(pán)相關(guān)的文件讀寫(xiě)操作都有使用到pagec...
極簡(jiǎn)主義者,崇尚簡(jiǎn)潔明快的代碼風(fēng)格,這也可能是不喜歡Java全家桶的原因……當(dāng)然我說(shuō)的簡(jiǎn)潔是要建立在不降低可讀性的前提下,即不影響代碼本身的表現(xiàn)力。如果為求代碼精簡(jiǎn)而讓代碼晦澀艱深同樣不可取。本文會(huì)介紹10個(gè)條款。1.善用emplaceC11開(kāi)始STL容器出現(xiàn)了emplace(置...
hi,上次分析了RCU核心思想:深入理解RCU核心原理,后面說(shuō)會(huì)分享一篇RCU的源碼剖析,其實(shí)我這邊已經(jīng)總結(jié)得差不多:但自己思考了一下,發(fā)現(xiàn)大部分都是代碼分析,這樣很多人其實(shí)并不喜歡看源代碼分析(代碼有點(diǎn)多),所以可能其他方式更好,比如圖解,我發(fā)現(xiàn)已經(jīng)有人搞了這個(gè),而且質(zhì)量也挺高...
289117336
Tronlong創(chuàng)龍
13030203448
大有可為
MXX1597759
xingnan123
xiaoguaixh
Y0825
LorenandGabriel
ilovenaibao
bluesky0318
liqinglong1023