偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

上帝視角:程序員為什么需要理解 CPU?

商務(wù)辦公
最近陸陸續(xù)續(xù)寫(xiě)了幾篇關(guān)于CPU的文章,可能有的同學(xué)會(huì)問(wèn),程序員寫(xiě)代碼就好了,為什么需要去理解CPU啊?不嫌累啊?啊?啊?你倒是說(shuō)啊。

[[400041]]

大家好,我是小風(fēng)(人設(shè)建立中。。。),今天給大家?guī)?lái)一篇?jiǎng)偎萍夹g(shù)文的非技術(shù)文。

最近陸陸續(xù)續(xù)寫(xiě)了幾篇關(guān)于CPU的文章,可能有的同學(xué)會(huì)問(wèn),程序員寫(xiě)代碼就好了,為什么需要去理解CPU啊?不嫌累啊?啊?啊?你倒是說(shuō)啊。

計(jì)算機(jī)系統(tǒng) != 漢堡包

在之前的文章中我把計(jì)算機(jī)系統(tǒng)比作一個(gè)漢堡包,這個(gè)類比不太恰當(dāng),雖然漢堡包是層級(jí)結(jié)構(gòu),但它是上下對(duì)稱的,計(jì)算機(jī)系統(tǒng)的層級(jí)結(jié)構(gòu)顯然不是對(duì)稱的,你要說(shuō)披薩還差不多,注意是披薩,不是餡餅,因?yàn)轲W餅也是對(duì)稱的。

計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)是上層基于下層,并且上層對(duì)外屏蔽下層,因此用洋蔥來(lái)比喻計(jì)算機(jī)系統(tǒng)是再恰當(dāng)不過(guò)了,這兩者都是層級(jí)結(jié)構(gòu),下層對(duì)上層都不可見(jiàn),最妙的是,這兩者看時(shí)間長(zhǎng)了都會(huì)辣眼睛!

這種層級(jí)結(jié)構(gòu)保證了處于上層程序員無(wú)需理解下一層。

模糊的精確

你的確不需要知道底層全部的微觀細(xì)節(jié),實(shí)際上我也不相信有誰(shuí)能全部知道,如果你太注重細(xì)節(jié),沒(méi)有對(duì)計(jì)算機(jī)系統(tǒng)的大局觀而是一頭扎到細(xì)節(jié)里,最終也只是徒勞,只挖掘細(xì)節(jié)很像是一種“模糊的精確”。

精確的模糊

但是,如果你能知道底層的宏觀上的原理,情況就不一樣了,我把這種宏觀上的不那么細(xì)節(jié)的理解稱之為“精確的模糊”,老外有一個(gè)詞我認(rèn)為很貼切:The Big Picture。

程序員這一行,個(gè)人認(rèn)為精確的模糊要遠(yuǎn)好于模糊的精確,因?yàn)榍罢咭脒M(jìn)一步了解細(xì)節(jié)是很容易的(只是需不需要的問(wèn)題),反之則非常困難。而且依靠這種精確的模糊已經(jīng)能解決很多問(wèn)題,而后者則不能。

上帝視角

每一個(gè)大家認(rèn)為的高手腦海里都有這樣一種精確的模糊(或者精確的精確,高手中的高手),ta可能不知道編譯器(解釋器)、鏈接器、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧、CPU、內(nèi)存等等所有核心模塊的全部細(xì)節(jié),但是ta知道這些模塊“應(yīng)該”怎樣工作,當(dāng)你有了這種理解后,你會(huì)發(fā)現(xiàn):

你很確定的自己的每一行程序是怎么被計(jì)算機(jī)執(zhí)行的;你清楚的知道什么時(shí)候該用多線程什么時(shí)候不該用;你清楚的知道自己的線程什么時(shí)候該加鎖、什么時(shí)候該等待,怎樣解決互斥問(wèn)題,怎樣解決同步問(wèn)題;你清楚的知道自己的每一段代碼大概可能會(huì)執(zhí)行多長(zhǎng)時(shí)間;你清楚的知道自己的每次函數(shù)調(diào)用從上層到底層是如何執(zhí)行的,因此你很清楚該選擇使用什么樣的函數(shù),傳遞什么樣的參數(shù)才能達(dá)到自己想要的效果;你清楚的理解計(jì)算機(jī)系統(tǒng),因此發(fā)現(xiàn)公眾號(hào)碼農(nóng)的荒島求生也就是剛剛在本文開(kāi)頭立人設(shè)的小風(fēng)說(shuō)的都是你已經(jīng)知道的東西。

當(dāng)你的程序出現(xiàn)問(wèn)題后無(wú)頭蒼蠅般瞎試一通并期待自己的程序能奇跡般正常工作時(shí);當(dāng)編譯器提示奇怪的錯(cuò)誤時(shí);當(dāng)鏈接器莫名其妙的提示'undefined reference to ***'時(shí);當(dāng)程序運(yùn)行起來(lái)就core時(shí);當(dāng)程序運(yùn)行一段時(shí)間被OOM kill掉時(shí);當(dāng)你的程序內(nèi)存泄漏時(shí);當(dāng)你的程序莫明奇妙耗時(shí)非常高時(shí);如果在這些時(shí)刻你能做的僅僅是等待別人來(lái)幫忙,那么就不要說(shuō)程序員不需要理解底層了。

說(shuō)了這么多,用一句話說(shuō)就是理解底層的好處可以讓程序員在寫(xiě)程序時(shí)獲得“上帝視角”,一切都逃不過(guò)你的法眼。

本文轉(zhuǎn)載自微信公眾號(hào)「碼農(nóng)的荒島求生」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系碼農(nóng)的荒島求生公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)的荒島求生
相關(guān)推薦

2015-09-24 09:04:36

程序員

2019-10-24 09:32:51

程序員python語(yǔ)言

2015-09-16 08:43:16

2025-05-12 08:28:23

2018-02-09 15:40:55

旅行青蛙程序員游戲

2013-10-29 10:24:31

程序員漫畫(huà)

2011-08-11 14:52:59

2011-09-18 09:42:08

程序員

2015-06-05 14:15:13

程序員難升職

2014-08-15 11:07:09

程序員

2012-09-06 10:30:58

2011-12-20 09:01:25

.NET

2016-03-15 08:51:12

程序員生活怪異

2015-09-15 09:08:58

前端程序員高薪

2019-11-08 13:57:53

程序員Excel軟件

2011-04-19 09:59:47

工資程序員

2010-10-09 09:20:08

.NET

2012-08-07 09:34:31

程序員

2013-09-26 09:34:56

女程序員

2015-11-02 09:19:10

程序員JavaScript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)