葵花宝典读书笔记-面向对象的迷思

从语言层面的处理机制上讲,面向对象的方式肯定比面向过程的方式效率要低一些。所以,对性能要求高的,例如操作系统、驱动程序、网络设备程序都是由C语言编写的。(C语言虽然提供的编程模式是面向过程的,但是同样可以以面向对象的思想来写程序,只是它没有太多机制支持面向对象方式编写程序,不是很方便而已。)

很多人认为面向对象的效率会导致性能很差,经常用C语言和JAVA语言做比较来说明观点。

程序系统的运行效率更大的取决于设备的IO速度。

CPU:每秒10亿次,性能是纳秒级

内存:每秒1000万次,每次请求时间是微妙级

磁盘:每次5ms,请求时间是毫秒级

网络(TCP):每次网络交互2ms,毫秒级

数据库:基本等于网络和磁盘之和,甚至更慢

可以看到,如果业务流程中涉及到了磁盘、网络、数据库,那么性能将降低到毫秒级。

对于大部分语言,语言本身的运行速度是内存级别,也就是微妙级的。

假设,一个业务流程:

C语言处理的速度是:语言本身10微妙 + 磁盘操作5豪秒 = 5.01ms

JAVA处理速度:语言本身100微妙 + 磁盘操作5豪秒 = 5.1ms

语言本身的性能差距在整个流程中的提升可以看作是微乎其微。

因此,对复杂的业务系统,性能的高低是由系统的架构设计决定的,不是由语言本身决定的。

原文地址:https://www.cnblogs.com/mysic/p/8448815.html

时间: 2024-10-10 17:43:10

葵花宝典读书笔记-面向对象的迷思的相关文章

葵花宝典读书笔记-面向对象

面向对象编程思想不再局限于计算机本质,更侧重于对现实世界的模拟.对现实世界模拟的思想,本质就是人的思想. 在面向过程中,有一个类似于中央控制器的角色统一调度.面向对象中,没有这样的角色,也不指定严格的操作顺序,而是设计了许多对象,指定这些对象需要完成的任务,以及这些对象如何对外界的刺激作出反应. 如果说面向过程像一条生产流水线,那么面向对象就像一个足球队.每个球员有自己的行为和自己的特长.没有那个人可以从比赛的开始,就可以规划每个球员的每一步走位.出脚.传球....而是只能指定每个球员的角色(前

葵花宝典读书笔记-面向对象的应用范围

1.能做什么? 面向对象的核心是"可扩展性".因此,经常变化的地方就是面向对象应用的地方. 软件系统中,经常变化的地方主要集中在客户需求部分,不变的一般都属于计算机系统的基础. 2.不能做什么? 从上图可以看到"可扩展性"只占软件质量属性中的一小部分,其他部分都是不面向对象可以解决的.因此明白了面向对象的特点,是应用面向对象的关键. 面向对象不是瑞士军刀,只是普通的锤子而已,不要尝试所有的问题都用面向对象的思想去解决. 原文地址:https://www.cnblog

葵花宝典读书笔记-为什么要面向对象

面向过程和计算机如影随形,从计算机诞生之日起,面向过程一直占主导地位.C语言.操作系统.协议栈.驱动系统.都是面向过程的代表. 为什么会有面向对象诞生并流行呢?面向过程是可以看作是流水线,那么流水线有个缺点:流水和原料是相对固定的,扩展起来很麻烦.比如啤酒生产线,操作的原来是啤酒原料,生产的步骤是生产啤酒的步骤,如果现在要生产醋,那么就得修改流水线上的设备和生产流程,或引进一条新的流水线.前面说过,面向过程设计解决了面向机器的复杂性问题,面向对象则解决的是扩展性和可维护性问题. 工业上,对生产线

葵花宝典读书笔记-面向过程

面向过程是一种以"过程"作为中心的编程思想,"过程"就是"完成一件事的步骤".面向过程是一种"机械的思想",就像流水线一样,一个阶段衔接一个阶段,环环相扣.每个阶段都有自己的输入.处理.输出的步骤.运用面向过程方法时也要设计这样一条流水线:将程序划分为不同的阶段,设计好个个阶段如何衔接,定义好每个阶段要处理的数据. "程序=算法+数据结构" 这个总结正好契合机械化的特征.计算机本质上是一台机器,其核心CPU

葵花宝典读书笔记-类

一,类的定义 类是一组相似事物的统称 "一组"  在于多个,单个事物无法成为一个类."人"可以是一个类,但"我"就不是一个类. "相似" 比较像,但不完全相同.奥巴马,克林顿都是人类,但他们并不是相同的一个人. "统称" 具有概括性.奥巴马.克林顿可以统称为人.男人.动物.总统.但不会统称为奥巴马,因为奥巴马是具体的一个人. 二,如何划分类 角度决定看法.如何划分类,要看所站的角度. 你.我.猪.鱼.松树

葵花宝典读书笔记-对象

对象就是一个具体的类,就是一个类的实现. 对象是客观存在的,世界万物皆对象.人类为了归纳,总结,而把具有相似性的对象归类到一个类中.真正存在于软件运行过程中的是对象,而不是类. 软件对象产生的过程: 现实对象->现实类->软件类->软件对象 "软件类来源于现实类,但高于现实类"这句话的意思是.软件类不一定在现实中就存在对应的现实类.大多数软件类抽象于现实类,但他们之间并非一一对应,一个现实类可能对应多个软件来.例如:ATM是一个现实中的类,转化成软件类后就有"

葵花宝典读书笔记-接口

接口,英文interface,拆开看就是inter 和 face inter 有互相的意思,其含义强调两方的交互. face 面,对应的是点和线.很形象的体现了功能的多样性.可以看作是多个功能点的集合组成的一个功能面,通过它可以与多个功能点进行交互.但是功能点有很多,哪些才是属于一个面的?接口的定义是:接口是一组相关的交互功能点定义的集合.这就解释了如何去划分哪些功能点是一个面的. 接口强调的是双方的交互,如果只有一方,那么就不是交互了,也就不存在接口. 接口的功能点只是定义,不涉及具体的实现.

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

《Sams Teach Yourself Windows? Workflow Foundation in 24 Hours》读书笔记目录

目录 1 Part I - The Basics 1.1 Hour 1 - Understanding Windows Workflow Foundation 1.2 Hour 2 - A Spin Around Windows Workflow Foundation 1.3 Hour 3 - Learning Basic Hosting 1.4 Hour 4 - Learning Host-Workflow Data Exchange 1.5 Hour 5 - Creating an Esca