↓推薦關(guān)注↓前言測試是軟件開發(fā)過程中一個必須的環(huán)節(jié),測試確保軟件的質(zhì)量符合預(yù)期。對于工程師自己來說,單元測試也是提升自信心的一種方式。直接交付沒有經(jīng)過測試的代碼是不太好的,因為這很可能會浪費整個團(tuán)隊的時間,在一些原本早期就可以發(fā)現(xiàn)的問題上。而單元測試,就是發(fā)現(xiàn)問題一個很重要的環(huán)節(jié)...
在我們?nèi)粘9ぷ髦校瑸榱蓑炞C開發(fā)的功能,比如:文件上傳功能或者算法的處理效率等,經(jīng)常需要一些大文件進(jìn)行測試,有時在四處找了一頓之后,發(fā)現(xiàn)竟然沒有一個合適的,雖然Linux中也有一些命令比如:vim、touch等可以創(chuàng)建文件,但是如果需要一個100G或者1T的大文件,這些命令就顯得力...
鎖是一個常見的同步概念,我們都聽說過加鎖(lock)或者解鎖(unlock),當(dāng)然學(xué)術(shù)一點的說法是獲取(acquire)和釋放(release)。恰好pthread包含這幾種鎖的API,而C11只包含其中的部分。接下來我主要通過pthread的API來展開本文。mutex(互斥量...
之前整理過一篇C20新特性的文章全網(wǎng)首發(fā)??!C20新特性全在這一張圖里了,里面提到過latch、barrier和semaphore,但是沒有詳細(xì)介紹過三者的作用和區(qū)別,這里詳細(xì)介紹下。latch這個可能大多數(shù)人都有所了解,這就是我們經(jīng)常會用到的CountDownLatch。用于使...
↓推薦關(guān)注↓轉(zhuǎn)自:量子位?公眾號(QbitAI)程序bug也能負(fù)負(fù)得正嗎?還真可以。比如程序員們再熟悉不過的排序算法,通過兩個“bug”居然能歪打正著,實在令人匪夷所思。請看這位程序員寫的數(shù)組升序排序代碼:for?i?=?1?to?n?do??for?j?=?1?to?n?do?...
↓推薦關(guān)注↓文章目錄一、QUIC如何解決TCP的隊頭阻塞問題?1.1TCP為何會有隊頭阻塞問題1.2QUIC如何解決隊頭阻塞問題1.3QUIC沒有隊頭阻塞的多路復(fù)用二、QUIC如何優(yōu)化TCP的連接管理機(jī)制?2.1TCP連接的本質(zhì)是什么2.2QUIC如何減少TCP建立連接的開銷2....
↓推薦關(guān)注↓1.線程池原理我們使用線程的時候就去創(chuàng)建一個線程,這樣實現(xiàn)起來非常簡便,但是就會有一個問題:如果并發(fā)的線程數(shù)量很多,并且每個線程都是執(zhí)行一個時間很短的任務(wù)就結(jié)束了,這樣頻繁創(chuàng)建線程就會大大降低系統(tǒng)的效率,因為頻繁創(chuàng)建線程和銷毀線程需要時間。那么有沒有一種辦法使得線程可...
↓推薦關(guān)注↓大家好,今天給大家分享一篇關(guān)于Cache的硬核的技術(shù)文,基本上關(guān)于Cache的所有知識點都可以在這篇文章里看到。關(guān)于Cache這方面內(nèi)容圖比較多,不想自己畫了,所以圖都來自《ComputerArchitecture:AQuantitativeApproach》。這是一...
緣起近期排查了一個問題,epoll驚群的問題,起初我并不認(rèn)為這是驚群導(dǎo)致,因為從現(xiàn)象上看,只是體現(xiàn)了CPU不均衡。一共fork了20個Server進(jìn)程,在請求負(fù)載中等的時候,有三四個Server進(jìn)程呈現(xiàn)出比較高的CPU利用率,其余的Server進(jìn)程的CPU利用率都是非常低。中斷,...
〇、本文寫作背景大約2年前,在騰訊內(nèi)網(wǎng),筆者和很多同事討論了GPU虛擬化的現(xiàn)狀和問題。從那以后,出現(xiàn)了一些新的研究方向,并且,有些業(yè)界變化,可能會徹底顛覆掉原來的一些論斷。但這里并不是要重新介紹完整的GPU虛擬化的方案譜系。而是,我們將聚焦在英偉達(dá)GPUCUDA計算領(lǐng)域,介紹下我...
眾所周知,C并不是一種流行的Web開發(fā)語言,究其原因有很多:語言門檻高、使用難度大、開發(fā)效率低......話雖如此,但隨著Emscripten的成熟,未來C在Web方面會發(fā)揮更大的潛能,尤其是游戲、3D應(yīng)用等方面。有關(guān)CWeb相關(guān)的框架有不少,下面進(jìn)行了簡單的整理,并按照“Sta...
說起Web開發(fā),大多數(shù)人會想到Java、Python、Golang...?因為它們的主流Web框架有很多,Java有非常知名的Spring全家桶,Python有大而全的Django、小而精的Flask、高性能的Tornado,Golang也有快速靈活的Gin、Echo等框架。相比...
當(dāng)我每了解一個新技術(shù)或者新框架的時候,我都想要先把名字概念弄懂是什么,可見概念對于我們的幫助非常大。計算機(jī)網(wǎng)絡(luò)中的概念也是非常龐雜,理解起來比較困難,所以這里,我給大家匯總了計算機(jī)網(wǎng)絡(luò)中89個常見的概念,希望對你有所幫助。主機(jī):計算機(jī)網(wǎng)絡(luò)上任何一種能夠連接網(wǎng)絡(luò)的設(shè)備都被稱為主機(jī)或...
↓推薦關(guān)注↓std::set/std::map(以下用std::map代表)是常用的關(guān)聯(lián)式容器,也是ADT(抽象數(shù)據(jù)類型)。也就是說,其接口(不是OO意義下的interface)不僅規(guī)定了操作的功能,還規(guī)定了操作的復(fù)雜度(代價/cost)。例如set::insert(iterat...
一、前言這篇文章來聊聊大名鼎鼎的GDB,它的豪門背景咱就不提了,和它的兄弟GCC一樣是含著金鑰匙出生的,在GNU的家族中的地位不可撼動。相信每位嵌入式開發(fā)工程師都使用過gdb來調(diào)試程序,如果你說沒有用過,那只能說明你的開發(fā)經(jīng)歷還不夠坎坷,還需要繼續(xù)被BUG吊打。我們都知道,在使用...