zoukankan      html  css  js  c++  java
  • 六、面向对象的迷思

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

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

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

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

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

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

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

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

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

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

            假设,一个业务流程:

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

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

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

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

  • 相关阅读:
    C#最小化到托盘+双击托盘恢复
    WinForm最小化到托盘以及托盘右键菜单
    WinForm最小化到托盘以及托盘右键菜单
    System.Dynamic.ExpandoObject 类型的简单使用
    System.Dynamic.ExpandoObject 类型的简单使用
    C# 操作MongoDB时间 时差问题
    C# 操作MongoDB时间 时差问题
    C# typeof() 和 GetType()区别是什么?
    C++ 文件操作之修改文件某一行数据
    C# typeof() 和 GetType()区别是什么?
  • 原文地址:https://www.cnblogs.com/mysic/p/8448815.html
Copyright © 2011-2022 走看看