C語言由于在構(gòu)建系統(tǒng)軟件領域的關(guān)鍵作用而被譽為“皇冠上的明珠”。隨著C20國際標準的正式發(fā)布,C進入全新的里程碑。來自Google、微軟、騰訊、華為等業(yè)界專家紛紛表示,包括C20在內(nèi)的現(xiàn)代C語言將為系統(tǒng)級軟件的開發(fā)、構(gòu)建、設計帶來重要且深遠的影響。為此,我們特邀C之父、美國工程院...
↓推薦關(guān)注↓內(nèi)存管理是C最令人切齒痛恨的問題,也是C最有爭議的問題,C高手從中獲得了更好的性能,更大的自由,C菜鳥的收獲則是一遍一遍的檢查代碼和對C的痛恨,但內(nèi)存管理在C中無處不在,內(nèi)存泄漏幾乎在每個C程序中都會發(fā)生,因此要想成為C高手,內(nèi)存管理一關(guān)是必須要過的,除非放棄C,轉(zhuǎn)到...
↓推薦關(guān)注↓以前做過兩年C程序移植工作,從Win32平臺移植到Linux平臺。大約有上百萬行C/C代碼,歷時一年多。在開發(fā)Win32版本時,已經(jīng)強調(diào)了程序的可植性,無奈Win32團隊里對Linux精通的人比較少,很多問題沒有想到,直到后來移植工作開始時,才發(fā)現(xiàn)移植并非像想的那樣簡...
前言今天我們來深度解密一下負載均衡器LVS的秘密,相信大家看了你管這破玩意兒叫負載均衡?這篇文章后,還是有不少疑問,比如LVS看起來只有類似路由器的轉(zhuǎn)發(fā)功能,為啥說它是四層(傳輸層)負載均衡器呢,今天我們就來逐漸揭開LVS的迷霧,本文將會用圖解的方式淺入深地探討LVS的工作機制最...
↓推薦關(guān)注↓和CPU、內(nèi)存一樣,磁盤和文件系統(tǒng)的管理,也是操作系統(tǒng)最核心的功能。磁盤為系統(tǒng)提供了最基本的持久化存儲。文件系統(tǒng)則在磁盤的基礎上,提供了一個用來管理文件的樹狀結(jié)構(gòu)。那么,磁盤和文件系統(tǒng)是怎么工作的呢?又有哪些指標可以衡量它們的性能呢?索引節(jié)點和目錄項文件系統(tǒng),本身是對...
↓推薦關(guān)注↓可以隨便到網(wǎng)上查一查,各大互聯(lián)網(wǎng)公司筆試面試特別喜歡考一道算法題,即?LRU緩存機制,又順手查了一下LRU緩存機制最近有哪些企業(yè)喜歡考察,超級大熱門!今天給大家分享一篇關(guān)于?Cache?的硬核的技術(shù)文,基本上關(guān)于Cache的所有知識點都可以在這篇文章里看到。關(guān)于?Ca...
因為要對百萬、千萬、甚至是過億的用戶提供各種網(wǎng)絡服務,所以在一線互聯(lián)網(wǎng)企業(yè)里面試和晉升后端開發(fā)同學的其中一個重點要求就是要能支撐高并發(fā),要理解性能開銷,會進行性能優(yōu)化。而很多時候,如果你對Linux底層的理解不深的話,遇到很多線上性能瓶頸你會覺得狗拿刺猬,無從下手。我們今天用圖解...
我們說的ModernC,一般指的是C11及以后的標準,從C11開始,ModernC引入了大量的實用的特性,主要是兩大方面,學習的時候也可以從這兩大方面學習:增強或者改善的語法特性;新增的或者改善的STL庫。我們來看幾個具體的案例:案例1:統(tǒng)一的類成員初始化語法與std::init...
大家都知道,在創(chuàng)建一個服務器程序的時候,需要先listen一下,然后才能接收客戶端的請求。例如下面的這段代碼我們再熟悉不過了。int?main(int?argc,?char?const?*argv[]){?int?fd?=?socket(AF_INET,?SOCK_STREAM,...
導讀:對于工程經(jīng)驗比較豐富的同學,并發(fā)應該也并不是陌生的概念了,但是每個人所理解的并發(fā)問題,卻又往往并不統(tǒng)一,本文系統(tǒng)梳理了百度C工程師在進行并發(fā)優(yōu)化時所作的工作。一、背景簡單回顧一下,一個程序的性能構(gòu)成要件大概有三個,即算法復雜度、IO開銷和并發(fā)能力。由于現(xiàn)代計算機體系結(jié)構(gòu)復雜...
↓推薦關(guān)注↓本文是《C并發(fā)編程》一文的姊妹篇。將著重介紹C11標準引入的內(nèi)存模型。前言在《C并發(fā)編程》一文中,我們已經(jīng)介紹了C11到C17在并發(fā)編程方面的新增API。借助那篇文章中的知識,你應該已經(jīng)可以開發(fā)一個完善的C并發(fā)系統(tǒng)。這對絕大部分人來說,是足夠的了。但在一些情況下,我們...
在ModernC之前,C無疑是個更容易寫出坑的語言,無論從開發(fā)效率,和易坑性,讓很多新手望而卻步。比如內(nèi)存泄露問題,就是經(jīng)常會被寫出來的坑,本文就讓我們一起來看看,這些讓現(xiàn)在或者曾經(jīng)的C程序員淚流滿面的內(nèi)存泄露場景吧。你是否有踩過?1.函數(shù)內(nèi)或者類成員內(nèi)存未釋放這類問題可以稱之為...
socketfd長什么樣子?什么是socketfd?粗糙的來講,就是網(wǎng)絡fd,比如我們最常見的C/S客戶端服務端的編程模式,就是網(wǎng)絡通信的一種方式。撇開底層和協(xié)議細節(jié),網(wǎng)絡通信和文件讀寫從接口上有本質(zhì)區(qū)別嗎?其實沒啥區(qū)別,不就是讀過來和寫過去嘛,簡稱IO。我們先看一下socket...