↓推薦關(guān)注↓以前做過兩年C程序移植工作,從Win32平臺(tái)移植到Linux平臺(tái)。大約有上百萬行C/C代碼,歷時(shí)一年多。在開發(fā)Win32版本時(shí),已經(jīng)強(qiáng)調(diào)了程序的可植性,無奈Win32團(tuán)隊(duì)里對(duì)Linux精通的人比較少,很多問題沒有想到,直到后來移植工作開始時(shí),才發(fā)現(xiàn)移植并非像想的那樣簡(jiǎn)...
前言今天我們來深度解密一下負(fù)載均衡器LVS的秘密,相信大家看了你管這破玩意兒叫負(fù)載均衡?這篇文章后,還是有不少疑問,比如LVS看起來只有類似路由器的轉(zhuǎn)發(fā)功能,為啥說它是四層(傳輸層)負(fù)載均衡器呢,今天我們就來逐漸揭開LVS的迷霧,本文將會(huì)用圖解的方式淺入深地探討LVS的工作機(jī)制最...
↓推薦關(guān)注↓和CPU、內(nèi)存一樣,磁盤和文件系統(tǒng)的管理,也是操作系統(tǒng)最核心的功能。磁盤為系統(tǒng)提供了最基本的持久化存儲(chǔ)。文件系統(tǒng)則在磁盤的基礎(chǔ)上,提供了一個(gè)用來管理文件的樹狀結(jié)構(gòu)。那么,磁盤和文件系統(tǒng)是怎么工作的呢?又有哪些指標(biāo)可以衡量它們的性能呢?索引節(jié)點(diǎn)和目錄項(xiàng)文件系統(tǒng),本身是對(duì)...
↓推薦關(guān)注↓可以隨便到網(wǎng)上查一查,各大互聯(lián)網(wǎng)公司筆試面試特別喜歡考一道算法題,即?LRU緩存機(jī)制,又順手查了一下LRU緩存機(jī)制最近有哪些企業(yè)喜歡考察,超級(jí)大熱門!今天給大家分享一篇關(guān)于?Cache?的硬核的技術(shù)文,基本上關(guān)于Cache的所有知識(shí)點(diǎn)都可以在這篇文章里看到。關(guān)于?Ca...
因?yàn)橐獙?duì)百萬、千萬、甚至是過億的用戶提供各種網(wǎng)絡(luò)服務(wù),所以在一線互聯(lián)網(wǎng)企業(yè)里面試和晉升后端開發(fā)同學(xué)的其中一個(gè)重點(diǎn)要求就是要能支撐高并發(fā),要理解性能開銷,會(huì)進(jìn)行性能優(yōu)化。而很多時(shí)候,如果你對(duì)Linux底層的理解不深的話,遇到很多線上性能瓶頸你會(huì)覺得狗拿刺猬,無從下手。我們今天用圖解...
我們說的ModernC,一般指的是C11及以后的標(biāo)準(zhǔn),從C11開始,ModernC引入了大量的實(shí)用的特性,主要是兩大方面,學(xué)習(xí)的時(shí)候也可以從這兩大方面學(xué)習(xí):增強(qiáng)或者改善的語法特性;新增的或者改善的STL庫。我們來看幾個(gè)具體的案例:案例1:統(tǒng)一的類成員初始化語法與std::init...
大家都知道,在創(chuàng)建一個(gè)服務(wù)器程序的時(shí)候,需要先listen一下,然后才能接收客戶端的請(qǐng)求。例如下面的這段代碼我們?cè)偈煜げ贿^了。int?main(int?argc,?char?const?*argv[]){?int?fd?=?socket(AF_INET,?SOCK_STREAM,...
導(dǎo)讀:對(duì)于工程經(jīng)驗(yàn)比較豐富的同學(xué),并發(fā)應(yīng)該也并不是陌生的概念了,但是每個(gè)人所理解的并發(fā)問題,卻又往往并不統(tǒng)一,本文系統(tǒng)梳理了百度C工程師在進(jìn)行并發(fā)優(yōu)化時(shí)所作的工作。一、背景簡(jiǎn)單回顧一下,一個(gè)程序的性能構(gòu)成要件大概有三個(gè),即算法復(fù)雜度、IO開銷和并發(fā)能力。由于現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)復(fù)雜...
↓推薦關(guān)注↓本文是《C并發(fā)編程》一文的姊妹篇。將著重介紹C11標(biāo)準(zhǔn)引入的內(nèi)存模型。前言在《C并發(fā)編程》一文中,我們已經(jīng)介紹了C11到C17在并發(fā)編程方面的新增API。借助那篇文章中的知識(shí),你應(yīng)該已經(jīng)可以開發(fā)一個(gè)完善的C并發(fā)系統(tǒng)。這對(duì)絕大部分人來說,是足夠的了。但在一些情況下,我們...
在ModernC之前,C無疑是個(gè)更容易寫出坑的語言,無論從開發(fā)效率,和易坑性,讓很多新手望而卻步。比如內(nèi)存泄露問題,就是經(jīng)常會(huì)被寫出來的坑,本文就讓我們一起來看看,這些讓現(xiàn)在或者曾經(jīng)的C程序員淚流滿面的內(nèi)存泄露場(chǎng)景吧。你是否有踩過?1.函數(shù)內(nèi)或者類成員內(nèi)存未釋放這類問題可以稱之為...
socketfd長(zhǎng)什么樣子?什么是socketfd?粗糙的來講,就是網(wǎng)絡(luò)fd,比如我們最常見的C/S客戶端服務(wù)端的編程模式,就是網(wǎng)絡(luò)通信的一種方式。撇開底層和協(xié)議細(xì)節(jié),網(wǎng)絡(luò)通信和文件讀寫從接口上有本質(zhì)區(qū)別嗎?其實(shí)沒啥區(qū)別,不就是讀過來和寫過去嘛,簡(jiǎn)稱IO。我們先看一下socket...
不論是在x86平臺(tái)上,還是在嵌入式平臺(tái)上,系統(tǒng)的啟動(dòng)一般都經(jīng)歷了bootloader到操作系統(tǒng),再到應(yīng)用程序,這樣的三級(jí)跳過程。每一個(gè)相互交接的過程,都是我們學(xué)習(xí)的重點(diǎn)。這篇文章,我們?nèi)匀灰詘86平臺(tái)為例,一起來看一下:從上電之后,系統(tǒng)是如何一步一步的進(jìn)入應(yīng)用程序的入口地址。bo...
昨天在知乎上刷到一個(gè)熱門問題:程序員需要達(dá)到什么水平才能順利拿到20k無壓力?其中一個(gè)最熱門的回答是:“其實(shí),無論你是前端還是后端、想進(jìn)大廠還是拿高薪,算法都一定很重要。”為什么,算法會(huì)如此重要?初入職場(chǎng)時(shí),一位資深前輩說過的一段話,受用至今:”我們招人的時(shí)候都有一個(gè)標(biāo)準(zhǔn),就是招...
一、前言這篇文章來聊聊大名鼎鼎的GDB,它的豪門背景咱就不提了,和它的兄弟GCC一樣是含著金鑰匙出生的,在GNU的家族中的地位不可撼動(dòng)。相信每位嵌入式開發(fā)工程師都使用過gdb來調(diào)試程序,如果你說沒有用過,那只能說明你的開發(fā)經(jīng)歷還不夠坎坷,還需要繼續(xù)被BUG吊打。我們都知道,在使用...
289117336
Tronlong創(chuàng)龍
13030203448
大有可為
MXX1597759
xingnan123
xiaoguaixh
Y0825
LorenandGabriel
ilovenaibao
bluesky0318
liqinglong1023