俺的回收站

架构分析 解释编译原理
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

架构基于纯Class体系的Common Type System 系统的困惑

Posted on 2007-01-22 12:26  Riceball LEE  阅读(2214)  评论(6编辑  收藏  举报

利用 CLR 提出的 Static Members 的概念,可以将普通类型全部类化,包括模块这一概念,通过Static Method 的这样的概念(没有Self指针,只能操作Static Fileds,等价于原来的函数过程),这样不会影响过程的速度性能。从速度性能上来说,的确该让我满意了!但是对于内存开销来说,采用类这一形式来表现类型后,内存开销增大了,即使表现最简单的整数类型,也不得不用类来表示。还是仔细列举出优劣对比:

优势:

  • 利于系统自举
  • 利于操作符重载
  • 利于扩充:用户自定义新类型

劣势:

  • 类型的Meta信息占用内存略多于非Class架构的类型系统(至少多占用16个字节/简单类型)
  • 简单类型的内存分配至少增加4个字节(指向VMT表,如果不用虚方法或密封类倒是可以省略)
  • 访问类型成员的效率略有下降
  • 迟滞了编译速度,如:对于简单变量的声明,分配多少空间也必须要到类中计算。

一言以蔽之,就是牺牲效率换取CTS的优秀的可扩展性能和自举性能的。不是我所想象的对性能没有影响(只从模块的函数上看过于片面了)。唉,牺牲速度和内存换取的可拓展性到底值不值得。