在ModernC之前,C無疑是個更容易寫出坑的語言,無論從開發(fā)效率,和易坑性,讓很多新手望而卻步。比如內存泄露問題,就是經常會被寫出來的坑,本文就讓我們一起來看看,這些讓現(xiàn)在或者曾經的C程序員淚流滿面的內存泄露場景吧。你是否有踩過?1.函數(shù)內或者類成員內存未釋放這類問題可以稱之為...
花了一下午(或一天)在試圖解決某個Bug,后來才知道解決方案很簡單,當時就是沒有想到。有個同事正好路過,看到你愁眉苦臉的,問你“怎么了呀?”“噢,是這樣的。我遇到了一個問題,點擊這個控件的時……”當你正準備和同事詳細解釋的時候,突然靈光一現(xiàn),你話都沒說完,就中斷了和同事的傾訴,繼...
導讀:對于工程經驗比較豐富的同學,并發(fā)應該也并不是陌生的概念了,但是每個人所理解的并發(fā)問題,卻又往往并不統(tǒng)一,本文系統(tǒng)梳理了百度C工程師在進行并發(fā)優(yōu)化時所作的工作。一、背景簡單回顧一下,一個程序的性能構成要件大概有三個,即算法復雜度、IO開銷和并發(fā)能力。由于現(xiàn)代計算機體系結構復雜...
最近在做一個項目,遇到一個問題,運行于ARM上的threadx在與DSP通信采用消息隊列的方式傳遞消息(最終實現(xiàn)原理是中斷共享內存的方式),在實際操作過程中發(fā)現(xiàn)threadx總是crash,于是經過排查,是因為傳遞消息的結構體沒有考慮字節(jié)對齊的問題。隨手整理一下C語言中字節(jié)對齊的...
socketfd長什么樣子?什么是socketfd?粗糙的來講,就是網(wǎng)絡fd,比如我們最常見的C/S客戶端服務端的編程模式,就是網(wǎng)絡通信的一種方式。撇開底層和協(xié)議細節(jié),網(wǎng)絡通信和文件讀寫從接口上有本質區(qū)別嗎?其實沒啥區(qū)別,不就是讀過來和寫過去嘛,簡稱IO。我們先看一下socket...
近期遇到一個問題,簡單點說,主機A上顯示一條ESTABLISHED狀態(tài)的TCP連接到主機B,而主機B上卻沒有任何關于主機A的連接信息,經查明,這是由于主機A和主機B的發(fā)送/接收緩沖區(qū)差異巨大,導致主機B進程退出后,主機A暫時憋住,主機B頻繁發(fā)送零窗口探測,F(xiàn)IN_WAIT1狀態(tài)超...
【導語】:開源的在線流程圖繪制工具。簡介Wireflow是一個免費的、開源的在線流程圖繪制工具,用于創(chuàng)建漂亮的流程圖,無需Photoshop技能。支持使用100多種自定義圖形、可進行多人協(xié)作、權限分配、實時聊天等功能,并擁有豐富的功能組件庫。Wireflow的誕生是為了在項目規(guī)劃...
↓推薦關注↓前言:一直是想知道一條SQL語句是怎么被執(zhí)行的,它執(zhí)行的順序是怎樣的,然后查看總結各方資料,就有了下面這一篇博文了。本文將從MySQL總體架構--->查詢執(zhí)行流程--->語句執(zhí)行順序來探討一下其中的知識。一、MySQL架構總覽:架構最好看圖,再配上必要的說明文字。下圖...
↓推薦關注↓hi,大家好,由于移動互聯(lián)網(wǎng)不斷發(fā)展,導致網(wǎng)絡流量徒增,推動著網(wǎng)絡技術不斷地發(fā)展,而CPU的運行頻率基本停留在10年前的水平,為了迎接超高速網(wǎng)絡技術的挑戰(zhàn),軟件也需要大幅度創(chuàng)新,結合硬件技術的發(fā)展,DPDK(DataPlaneDevelopmentKit),一個以軟件...
↓推薦關注↓從Linux內核3.15開始,您可能一直在關注內核社區(qū)中擴展的BerkeleyPacketFilter(eBPF)的開發(fā),或者您可能仍然將BerkeleyPacketFilter與VanJacobson在1992年所做的工作聯(lián)系起來。您可能已經使用BPF和tcpdum...
↓推薦關注↓1.PageCache1.1PageCache是什么?為了理解PageCache,我們不妨先看一下Linux的文件I/O系統(tǒng),如下圖所示:Figure1.Linux文件I/O系統(tǒng)上圖中,紅色部分為PageCache。可見PageCache的本質是由Linux內核管理的...
↓推薦關注↓看完后不再迷茫!在校學生的編程語言和數(shù)據(jù)結構的基礎還不錯,我認為應該在《操作系統(tǒng)》和《計算機體系結構》這兩門課上下功夫,然后才去讀編程方面的APUE、UNP等書。下面簡單談談我對學習這兩門課的看法和建議,都是站在服務端程序員的角度,從實用主義(pragmatic)的立...
socketfd長什么樣子?什么是socketfd?粗糙的來講,就是網(wǎng)絡fd,比如我們最常見的C/S客戶端服務端的編程模式,就是網(wǎng)絡通信的一種方式。撇開底層和協(xié)議細節(jié),網(wǎng)絡通信和文件讀寫從接口上有本質區(qū)別嗎?其實沒啥區(qū)別,不就是讀過來和寫過去嘛,簡稱IO。我們先看一下socket...