FAQ第二期 | 世界上第一个编程语言是怎么来的?
徐文浩
该思维导图由 AI 生成,仅供参考
你好,我是徐文浩,今天是第二期 FAQ,我搜集了第 3 讲到第 6 讲,大家在留言区问的比较多的问题,来做一次集中解答。
有些问题,可能你已经知道了答案,不妨看看和我的理解是否一样;如果这些问题刚好你也有,那可要认真看啦!
希望今天的你,也同样有收获!
Q1:为什么 user + sys 运行出来会比 real time 多呢?
我们知道,实际的计算机运行的过程中,CPU 会在多个不同的进程里面切换,分配不同的时间片去执行任务。所以,运行一个程序,在现实中走过的时间,并不是实际 CPU 运行这个程序所花费的时间。前者在现实中走过的时间,我们叫作 real time。有时候叫作 wall clock time,也就是墙上挂着的钟走过的时间。
而实际 CPU 上所花费的时间,又可以分成在操作系统的系统调用里面花的 sys time 和用户态的程序所花的 user time。如果我们只有一个 CPU 的话,那 real time >= sys time + user time 。所以,我当时在文章里给大家看了对应的示例。
不过,有不少同学运行出来的结果不是这样的。这是因为现在大家都已经用上多核的 CPU 了。也就是同一时间,有两个 CPU 可以同时运行任务。
你在一台多核或者多 CPU 的机器上运行,seq 和 wc 命令会分配到两个 CPU 上。虽然 seq 和 wc 这两个命令都是单线程运行的,但是这两个命令在多核 CPU 运行的情况下,会分别分配到两个不同的 CPU。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文从多个角度解答了读者提出的技术问题,涵盖了计算机技术领域的多个方面。首先,解释了在多核CPU上运行程序时,user + sys时间会超过real time的原因。其次,讨论了时钟周期时间和指令执行耗时的关系,以及低压主频和向量计算性能的优化。文章还回顾了编程语言的起源,指出编程语言是自举的,但并不要求第一个编译器就是用自己写的。最后,阐述了不同指令集中汇编语言和机器码的对应关系。读者可以通过硬读或先抓主要矛盾再抓细节问题的方法来解决阅读困难。文章内容丰富,适合对计算机技术感兴趣的读者深入了解。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出计算机组成原理》,新⼈⾸单¥68
《深入浅出计算机组成原理》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(14)
- 最新
- 精选
- -_-|||“user 和 sys 的时间是两个 CPU 上运行的时间之和,这就可能超过 real 的时间。”多核感觉运行会更快,为什么反而比单核user 和 sys的时间更多呢,并且超出real
作者回复: -_-_aaa同学, 你好,因为这里是 CPU时间,不是时钟时间,两个CPU各运行了0.1s,在CPU时间里面统计是 0.2s
2020-01-212 - Lrwin这个专栏真的学到很多2019-08-316
- 随心而至这几个加餐同样不能错过,徐老师分享了许多学习的方法和经验。2019-10-254
- 秋天读书百遍 其义自见把 看不懂 就多读几遍把2019-10-153
- 南山赞~2019-08-233
- enjoylearning这个自举有点意思2019-08-312
- 烟云学习方法不错!赞!2019-12-211
- 许童童跟着老师一起精进。2019-08-231
- leslie老师提到了低电压其实只是和能熬有关而不省电,那么为何它能提升性能呢? 想进一步求教老师一个问题;自己试过低电压的内存和常规的内存,为何主频一样但是就是明显的感觉笔记本的流畅性不同-尤其是加载虚机或者文件时,明显就是使用的时候感觉低电压顺畅一些,时间大概能节约大概20-30%左右。这是为何?希望老师提点。2019-08-2311
- Wheat Liu还是不太懂,real time那块。单CPU顺序执行两条指令的时间,跟多CPU执行两条指令的时间然后加在一起,为什么会不一样,时间差在哪2021-01-261
收起评论