您的位置 首页 > 数码极客

【电脑cpu是什么意思】上帝视角:程序员为什么要理解CPU?

来源|码农的无人岛生存(id: escape-it)

也许有些同学会是程序员写代码就可以了,为什么要理解CPU?你不累吗?啊?啊?你倒是说话啊。

电脑系统!=汉堡

在前面的文章中,我把电脑系统比作汉堡。这个比喻不恰当。虽然汉堡是等级结构,但它是上下对称的,计算机系统的等级结构显然不是对称的。披萨也差不多,注意是披萨,不是馅饼。因为馅饼也是对称的

计算机系统的结构是上层以下层为基础,上层阻断下层,所以用洋葱来比喻计算机系统更合适。两者都是等级结构,下层看不到上层。最好的是,两者看久了会眼睛辣!

这一层次结构保证了上层程序员不需要了解下一层。

模糊准确

不需要知道底层的所有微观细节。事实上,我不相信谁能全部知道。如果你太在意细节,就没有对计算机系统的大局观,而是把细节都捅进去。毕竟只是徒劳,只挖掘细节就像是一种“模糊精度”。

精确的模糊

但是如果能知道底层的宏观原理,情况就不一样了。这种宏观上不太详细的理解被称为“正确的模糊”。外国人有我认为合适的词。The Big Picture。

程序员这个职业,我认为正确的模糊比模糊要好得多。因为前者更好地理解细节很容易(只有不必要的问题),反之则很难。(威廉莎士比亚、温斯顿、程序员、程序员、程序员、程序员、程序员、程序员)而且,依靠这种正确的模糊已经可以解决很多问题,但后者不能。

上帝的视角

大家心目中的高手脑子里都有一种不知道所有核心模块(编译器(解释器)、链接器、操作系统、网络堆栈、CPU、内存等)所有细节的准确模糊(或准确的,高手高手高手)。但是ta知道这些模块应该如何工作。

很清楚自己所有的程序是如何由电脑运行的。我很清楚什么时候应该使用多线程,什么时候不应该使用。很清楚自己的线程应该什么时候锁定,什么时候等待,如何解决互斥问题,如何解决同步问题。

很清楚自己所有的代码能运行多久。因为很清楚自己的每个函数调用是如何从父函数到子函数执行的,所以很清楚应该使用什么函数,传递什么参数才能达到想要的效果。(约翰f肯尼迪,函数,函数,函数,函数,函数,函数,函数)你很了解计算机系统,所以刚刚发现本文开头建立的小风说的是你已经知道的一切。(约翰肯尼迪)。

当程序出现问题时,像无头苍蝇一样进行试验,期待自己的程序奇迹般地正常运行时,编译器显示奇怪的错误,链接器的未知提示“未定义的参考to * * *”时,当程序以核心运行时,

当程序被OOM kill运行了一段时间后,程序内存泄露了,你的程序很奇妙,需要很多时间,如果此时此刻你能做的只是等待别人的帮助,那么程序员不要说不需要了解底层。

说了这么多,一句话,了解底层的优点,程序员写程序的时候就能获得“上帝视角”。一切都逃不出你的法案。

出生于2001年的《程序员》与众多开发者一起成长,影响了一代又一代的中国技术人员。时隔20年,《新程序员》回归了全球技术大师的深度思考、优秀开发者技术创作等深度内容!同时,全方位地向所有开发者展示国内外核心技术生态系统的全景。扫描下面的小程序就可以立即加入!

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐