某一门技术,为什么从刚开始的 A 状态慢慢演变成 B 状态,再变到 C 状态,这里的演变过程值得深思。 以计算机的起源为例:
早期的计算机是没有操作系统的,只有输入,计算,输出。手工输入速度远低于计算机的计算速度。
于是出现了批处理操作系统,通过纸带,磁带等工具预先写入指令,形成一个指令清单(即任务)交给计算机处理。但批处理系统的缺点是只能有一个任务,而且当计算机在进行 I/O 处理时,CPU 是空闲的。
世人发明了进程,一个进程就代表一个任务,多个进程通过分时操作能让用户认为并行操作多任务,进程间的资源是独立单元,但是可以通过介质进行通信。缺点:进程内只进行串行处理,无法很好地分工合作提高处理效率。
于是就有了操作系统调度的最小单元-线程,线程能够使进程内的子任务能够共享进程内的资源,并并行工作,大大提高操作系统的性能。
多进程多线程虽然让多任务并行处理的性能大大提升,但本质上还是分时系统,并不能做到时间上真正的并行。解决这个问题的方式显而易见,就是让多个 CPU 能够同时执行计算任务,从而实现真正意义上的多任务并行。现在最流行的多核处理器方案就是 SMP ( Symmetric multiprocessing ) 从历史发展的角度来看,就这样一步一步提高了单机的性能
来来来,装 B 咯
以古为镜,可以知兴替。 — 唐太宗李世民
那些不能铭记过去的人注定要重蹈覆辙。— 乔治·桑塔亚那
然而单机性能的瓶颈实在是比较容易到达,集群这种水平解决方案才是王道;
后又深觉:微服务或系统分拆 在系统初建、需求较为稳定的情况下,还是尽早实践。
就像最近发生的事情,一个同事说想下载知乎上面的视频;
无耻的写个地址 download-m3u8-to-mp4
解决问题的感觉还是挺爽的,你的 G 点或许不在这。 好奇心让你更深入
记录下罢了!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.