百科问答小站 logo
百科问答小站 font logo



为什么现代CPU每秒数亿次计算,但是程序仍旧很卡? 第2页

     

user avatar   tayixin 网友的相关建议: 
      

数亿次够干啥的?

以专业图形渲染为例(区别于使用GPU的游戏渲染)

假设你要渲染1080p的画面,这就是1080*1920两百万个像素。

每个像素都要路径追踪得到应有的颜色,比如假设有1000条光线射到这个像素点,取平均才能得到应有的颜色。

然后这每一条光线简单起见经过一次反射就能从光源射到这个像素。

每一次反射要计算很多信息,以计算反射角的三角函数为例,假设用三阶展开简化计算,这就得十几次乘法。

每次乘法都是对于64位浮点数*64位浮点数计算。

你算算这一帧都多少次计算了?


user avatar   ou-yang-si-qi 网友的相关建议: 
      

2021.11.19 更新,最近还是有人点赞,有点小离谱,这问题生命力真强。

作为彩 大龄程序员,给后辈一个建议,就是多学,但是学精就算了,我等悟性学不精,学得精也很难遇到精密要求自己的自己和要求自己的岗位/公司。多学新东西,就可以去新公司混/或者混到新兴岗位上。

目前我在用xamarin搞app 应用。搞得屎一样,好在用户量很少,企业内部用用,也能对付。算是独立开发者,比较自由。可以决定自由的时间是用来学习/游戏/股票。就是觉悟得太晚了。现在房价都不怎么涨,后辈如果现在收入不错,赶紧开始理财吧,不要像我这么大年纪才开始搞。

不要脸的说一句,咱们在搞程序里面的,不见得算脑子好用的,但是在搞股票的里面,咱们一定是好用的,程序员不要内卷了,去买股票吧。我今年3月份开始炒股收益率都40%多了。


一天下来,惊呆了,这么多赞,看来获赞的主要原因还是达成共鸣了。

我干程序员也差不多10年了.小学就接触了一些VB,后来工作就发现,很多时候确实工作上很难都高标准要求自己.所以很佩服那些业余时间还会自己做做项目的人. 自己经常项目初期搭个讲究的框架,到开发中期,发现原来设计有点不合理.开始重构,然后一天过去发现业务功能非但没有增加,甚至还制造了更多待优化的项目. 随着时间推移,项目进度就更紧张了.越往后就越随意,再往后就是破窗效应了.一旦你容忍了几个自己项目的白痴代码,接下来就开始放飞自我了. 这就有点像我刚追女朋友的时候,我每天早期刷牙洗脸刮胡子.到同居后,我就要女朋友逼我洗澡了... 现在十几年职业生涯过去.发现所有的技术进步无非集中在:

  • 经验积累,掌握了更多更快的更容易维护开发的手段.虽然这些手段的性能不见得更好.
  • 即使程序未必比过去跑得快,但是程序出问题的时候的bug比过去容易显示了.
  • 进入职业的中期,深感老板也不在乎的技术,他们脑子都是业务,而你做出自己有成就感的设计提高开发效率的成就感在老板那边甚至你无法和他分享快乐. 最后逼着自己向老板兜售业务.
  • 所有的技能居然都来自新业务. 比如搞xamarin 因为我需要做ios了.仅此而已.

知乎上很多微软 谷歌 BAT 的大牛.他们看看着很潇洒的完成工作. 业余还能发发知乎,带大家逛,甚至做几个牛逼的轮子让大家瞻仰,但是我知道更多的程序员都是我这样平平无奇的人,在大牛眼中可能只是码农码畜,把网络上复制的代码组合加点业务就是我们的工作写照了.但这真的是多数程序员的工作, 没成就更无聊.

看到评论大家开心的血压拉满,能给大家带来一点快乐. 或许是我给程序员们带来过的最大价值了.


我这样拉跨程序员写的程序经常这样:

  • 不做异步,就在UI线程上搞事情.任何事做完之前.程序都是卡的
  • 不做并行,不管你是多少核cpu.我只有单线程
  • 使用网络资源的时候,不处理UI.甚至就干等,如果网络不稳定.程序就卡住,其实CPU根本没干活
  • 写很多大量无效的类型转换/装箱拆箱,声明使用一大堆集合
  • 为了重用代码,同时也懒得优化代码,一件简单的事情,交给一个很复杂的模块处理,说人话就是, 你需要一个螺母,你不直接买一个螺母,你买了一辆汽车,然后把螺母拆下来用,下次我需要一个螺丝,我甚至不用之前买的那辆汽车的螺丝,我再买一辆新的....
  • 不管用不用得着,总是使用原始的高清资源.比如用户头像.贪方便.我直接用1080P的图也不压缩...
  • 不缓存任何资源,哪怕一个东西反复被使用,依然不停从数据源获取数据...
  • 使用完数据不释放.... 比如我买了车取下它的螺母用,但是我车也不处理掉,还放在那做摆设.
  • 因为懒得写合理的数据传递.明明要用参数传递的数据一股脑放在全局变量. 拿生活做比喻就是我明明只是和你发私信,但是因为懒得写收件人信息,直接登人民日报...
  • 我们拉跨程序员多半知道写的东西垃圾在哪里,他们只是不知道这垃圾啥时候会在实际运行中爆发出问题来.偶尔也不知道这些垃圾组合在一起为啥居然可以运行,更不不知道这些垃圾组合在一起产生哪些新的特性.

哦.最重要的,我们拉跨程序员不觉得卡是bug.我们只觉得报错/崩溃/错误的数据展示是BUG...


user avatar   Ivony 网友的相关建议: 
      

真正CPU运算能力不足导致的卡的场景其实只占不到10%。

导致卡的最大的两个原因是锁和IO,简单说就是和CPU没啥关系……


user avatar   litrin 网友的相关建议: 
      

最新消息:陈小武的学生们已经被排成一排,挨个查手机了。


user avatar   luv_letter 网友的相关建议: 
      

最新消息:陈小武的学生们已经被排成一排,挨个查手机了。




     

相关话题

  笔记本端 Alder Lake-P 处理器将拥有 14 核性能怎么样? 
  CPU不满载的时候,晶体管在干什么? 
  为什么英特尔和 AMD 的 CPU 缓存只有三级,而不做四级或者更多? 
  如何看待视频博主耗时半年时间纯手工拼晶体管自制成功 CPU? 
  如何看待阿里巴巴旗下 「平头哥」发布首枚芯片 :玄铁 910? 
  大型单机游戏靠的是CPU的单核性能还是多核性能? 
  如何评价 AMD 将于 10 月 7 日发布 RX 5500:7nm 工艺,对标 GTX 1650? 
  AMD 两次领先 Intel 的时代,是 K7K8 架构时代还是 Zen2/3 架构时代领先更多? 
  多核的流行是否表明单个 CPU 核心性能的提升已达瓶颈阶段? 
  程序在地址空间中的位置是何时,以及如何决定的? 

前一个讨论
如何评价杰森·斯坦森主演的犯罪动作片《人之怒》?
下一个讨论
男女交往不要孩子,那为什么要结婚?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利