给之前我们学习过的计算机硬件归一个类:
整个计算机以CPU为核心。
程序的执行过程实际上是CPU不断地从存储器中读取内容(指令和数据)并予以执行的过程。CPU就像:
不停的工作。
冯·洛伊曼结构计算机其实是图灵机的实现。
图灵机是对带有可执行程序的可工作计算机的一种抽象的描述:是图灵在一篇有关“可计算性”论文的附录中假想出来的,主要是想证明:
凡是人类可计算的,也可由机器自动计算
这在当时,是石破天惊的,人民普遍认为:计算(至少是复杂的计算)只能是由“人脑”的“智慧”来实现的。
延伸开来:既然计算可以由机器自动实现,那智慧呢?所以后来图灵又天才性的提出“人工智能(AI)”,并因此而被成为:人工智能之父。(更多见:人工智能 / 逸闻史话)
图灵机的贡献:
可以用一种非常简单的、机械的机器(算法)完成非常复杂的功能。
PS记住这个“简单”(Keep It Stupid Simple),我们在后面二进制、代码书写要求中也会反复提及。
理解了冯·洛伊曼体系结构,就能理解:
比如说你电脑/公司的服务器性能不行了,程序员过来看了下,建议很可能就是:加一块内存条吧!
为什么加快内存条就能解决性能问题?CPU呢,磁盘呢?
演示:任务管理器,比如CPU消耗很高,加内存条能降低CPU消耗么?注意:冯·诺依曼结构图中的存储器特指内存。
复习(作业):内/外存的区别,或:为什么需要两种存储?
所以内存越大,能够存储的数据越多。一次性的把更多的数据加载到内存,就可以减少把数据从外存读到内存的时间。
就类似于一批货物:一次性拉过来 vs 多次运过来。
程序员:
计算机各个组件互相配合,作为一个整体运行。当各个组件运行速度不一致的时候,就会出现一个组件闲置(idle),等待另外一个组件的情形,拖累性能。
所以要提高性能,最重要的是:找到瓶颈,补足短板。(系统性能优化方法论之一)
(木桶原理)
目前来说,硬件的运行速度,从高到低依次是:CPU > 内存 > 外存 > 网络……
系统的瓶颈常常在于I/O。
工程师(利用现有技术手段:体会/强调)们怎么办?
两者有时候会被混用,但严格来说:
缓存(Cache):,通常用于“读”。又被翻译为“快取”(台湾)个人认为,更符合它的特点:一种快速获取数据的技术。比如:(PPT动画演示)
缓存技术简单粗暴(如果有一把枪指着我的头,要我在5分钟内解决项目的性能问题,我立马就会开始缓存……),本质上是“空间换时间”。现在被大量使用:
@想一想@:缓存技术有哪些问题?
缓冲(Buffer):通常用于“写”。比如,当需要将内存中的数据写入磁盘,有一点写一点,有一点写一点,磁盘扛不住;不如把数据先存在一个“缓冲区”中,然后一次性的写入磁盘。
@想一想@:缓冲本质上是降速,为什么要这样呢?
按冯·诺依曼结构制造出来计算机,另一个重大特点是:CPU的工作内容由存储器中的“内容”(指令和数据)决定。
即:计算机只是按输入内容忠实的执行——木有灵魂,^_^
从而:
|
单位 |
对应的人/职位 |
code(代码) |
行 |
coder(码农/码畜:仅用于自黑) |
program(程序) |
个 |
programer(程序员) |
software(软件) |
个/套 |
software engineer(软件工程师) |
develope(开发) |
|
developer(开发人员,通常对应UI、测试、产品经理……) |
演示:代码长啥样:
class Program { static void Main(string[] args) { Console.WriteLine("Hello! 源栈欢迎您"); } }
多快好省!前端后端,线上线下,名师精讲
更多了解 加: