Riceball's profileRiceball LEE personal we...PhotosBlogLists Tools Help

Blog


    January 22

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

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

    优势:

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

    劣势:

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

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

    俺的CLR 的分析文章以及与.NET相关的文章以后都放于这儿了: http://riceball.cnblogs.com/

    着手公司两个大项目的架构,其中一个要求ASP.NET 2.0,技术调查中.

    已经了解的:

    还需要了解以及扩充的:

    • SiteMap: 只提供XML格式的文件SiteMap,表示站点导航组织,未提供动态的基于数据库的站点导航。
    • Membership:提供了基本的成员和Role数据库以及登录等控件,需要扩充。
    • WebPart:基于成员数据库