0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析程序员为什么需要理解 CPU?

GReq_mcu168 来源:CSDN威廉希尔官方网站 社区 作者:码农的荒岛求生 2021-05-24 11:47 次阅读

今天给大家带来一篇胜似威廉希尔官方网站 文的非威廉希尔官方网站 文。 最近陆陆续续写了几篇关于CPU的文章,可能有的同学会问,程序员写代码就好了,为什么需要去理解CPU啊?不嫌累啊?啊?啊?你倒是说啊。

计算机系统 != 汉堡包

在之前的文章中我把计算机系统比作一个汉堡包,这个类比不太恰当,虽然汉堡包是层级结构,但它是上下对称的,计算机系统的层级结构显然不是对称的,你要说披萨还差不多,注意是披萨,不是馅饼,因为馅饼也是对称的。

计算机系统的结构是上层基于下层,并且上层对外屏蔽下层,因此用洋葱来比喻计算机系统是再恰当不过了,这两者都是层级结构,下层对上层都不可见,最妙的是,这两者看时间长了都会辣眼睛! 这种层级结构保证了处于上层程序员无需理解下一层。

模糊的精确你的确不需要知道底层全部的微观细节,实际上我也不相信有谁能全部知道,如果你太注重细节,没有对计算机系统的大局观而是一头扎到细节里,最终也只是徒劳,只挖掘细节很像是一种“模糊的精确”。

精确的模糊但是,如果你能知道底层的宏观上的原理,情况就不一样了,我把这种宏观上的不那么细节的理解称之为“精确的模糊”,老外有一个词我认为很贴切:The Big Picture。 程序员这一行,个人认为精确的模糊要远好于模糊的精确,因为前者要想进一步了解细节是很容易的(只是需不需要的问题),反之则非常困难。而且依靠这种精确的模糊已经能解决很多问题,而后者则不能。

上帝视角每一个大家认为的高手脑海里都有这样一种精确的模糊(或者精确的精确,高手中的高手),ta可能不知道编译器(解释器)、链接器、操作系统网络协议栈、CPU、内存等等所有核心模块的全部细节,但是ta知道这些模块“应该”怎样工作,当你有了这种理解后,你会发现: 你很确定的自己的每一行程序是怎么被计算机执行的;

你清楚的知道什么时候该用多线程什么时候不该用;你清楚的知道自己的线程什么时候该加锁、什么时候该等待,怎样解决互斥问题,怎样解决同步问题;你清楚的知道自己的每一段代码大概可能会执行多长时间;

你清楚的知道自己的每次函数调用从上层到底层是如何执行的,因此你很清楚该选择使用什么样的函数,传递什么样的参数才能达到自己想要的效果;

你清楚的理解计算机系统,当你的程序出现问题后无头苍蝇般瞎试一通并期待自己的程序能奇迹般正常工作时;当编译器提示奇怪的错误时;当链接器莫名其妙的提示‘undefined reference to ***’时;当程序运行起来就core时;

当程序运行一段时间被OOM kill掉时;当你的程序内存泄漏时;当你的程序莫明奇妙耗时非常高时;如果在这些时刻你能做的仅仅是等待别人来帮忙,那么就不要说程序员不需要理解底层了。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10863

    浏览量

    211769
  • 计算机
    +关注

    关注

    19

    文章

    7494

    浏览量

    87959
  • 程序
    +关注

    关注

    117

    文章

    3787

    浏览量

    81047
  • 编译器
    +关注

    关注

    1

    文章

    1634

    浏览量

    49133

原文标题:程序员为什么需要理解 CPU?

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 0次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 0次下载
    TMS320C55x DSP <b class='flag-5'>CPU</b><b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 0次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册

    机械革命发布CODE AI程序员

    近日,英特尔新质生产力威廉希尔官方网站 生态大会在成都举行,机械革命作为重要参展商带来了多款明星产品引爆全场!其中更是在AI PC软件生态产品发布分论坛上,Intel、智谱、机械革命三方联合发布了专为程序员设计的CODE AI程序员本,成为本次大会的一大亮点。
    的头像 发表于 11-30 10:34 386次阅读

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 169次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、威廉希尔官方网站 英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 201次阅读

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 411次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。威廉希尔官方网站 迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    GitHub Copilot:你的代码超级助手!程序员的最强福音

    今天小启给大家安利一款令人兴奋的AI工具——GitHubCopilot。它无疑是程序员们的最强福音!无论你是新手还是经验丰富的开发者,GitHubCopilot都将成为你的代码超级助手。想象一下
    的头像 发表于 03-05 08:04 1139次阅读
    GitHub Copilot:你的代码超级助手!<b class='flag-5'>程序员</b>的最强福音

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 823次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13