架构基于纯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的优秀的可扩展性能和自举性能的。不是我所想象的对性能没有影响(只从模块的函数上看过于片面了)。唉,牺牲速度和内存换取的可拓展性到底值不值得。