什么是 CLR

news/2024/6/25 13:12:16

http://blog.csdn.net/haoweinet/archive/2007/06/17/1655408.aspx

今天在听关于IIS 6.0的webcasts讲座,讲到较底层的架构时提到了CLR,为了更好的理解应用程序在IIS中的运行机制,在网上搜集了一些关于CLR的基础知识。

CLR(公用语言运行时)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。.NET提供了一个运行时 环境,叫做公用语言运行时(Commen Language Runtime ,是一种多语言执行环境,支持众多的数据类型和语言特性。他管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。

依靠一种以运行时为目标的编译器开发的代码叫做可操控代码 managed code 。与之相对的是unmanaged code。

元数据metadata :为了使运行时环境可以向可操控代码提供服务,语言编译器需要产生一种元数据,它将提供在使用语言中的类型、成员、引用的信息。运行时环境使用元数据定位并载入类,在内存中展开对象实例,解决方法调用,产生本地代码,强制执行安全性,并建立运行时环境的边界。

可操控执行的含义:对象在执行的过程中完全被运行时环境所控制。运行时环境提供以下服务:自动内存管理、调试支持、增强的安全性及与非可操控性代码的互操作性。条件:1、选择以运行时为目标的语言编译器,如VB、C#;2、在组件的输出类型中使用CLR要求的语言特性。

为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的 说法,在CLR监视之下运行的程序属于“受管理的”(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非受管理的” (unmanaged)的代码。

CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源,其中包括:访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。

然 而,这种对受管理代码的运行监视是有代价的。虽然当前还不可能精确地得到监视程序运行所需要的开销,但从当前Beta测试版的性能表现来看,正如 Microsoft所承认的那样,我们可以预料由它导致的性能降低程度至少达到10%。当然,如果监视程序运行能够将稳定性和可用性提高到一个新的档次, 我们可以怀疑10%的性能降低是否还可以称为一件坏事……

以上转自:

http://www.kmcenter.org/blog/user1/191/archives/2004/386.html

http://i-t.org.cn/html/biancheng/200703/2011.html

为什么微软要集成clr 到sql server?

 

在我看来,clr 存储过程是非常好的东西,它弥补了t-sql 做为一门查询语言的不足,使得数据库在处理逻辑问题的时候不像以前那么蹩脚,许多DB程序员为了用 t-sql实现一个简单的过程逻辑而大伤脑筋,比如一个非常间的需求,我想传递一个数组,里面装有id,想更新这些id的行的状态,就是在传递一个数组到 存储过程中并分割成若干个id,一个在C#中非常简单的实现却要为t-sql绞尽脑汁。。。。相信大多数程序员都有我类似的苦恼。而在最近的项目中,涉及 到由联通过来的短信数据处理,预处理短信表是由另外一个模块插入的,我负责的模块需要对这个预处理短信表的记录读取出来,定时扫描整个表,如果有需要处理 的短信,那么要由windows服务定时读取出来,并且根据短信种类的不同做业务逻辑的分发,整个模块的性能要求非常高,所有的上行短信都要经过这个表, 并处理。每秒发生的开连接插入删除造作非常多。最开始的设计是使用windows服务定时扫表并更新回数据库,一条一条的更新回数据库。。。。其性能之差 是难以想象的。所以准备采取clr存储过程结合job,把业务逻辑的分发也拿到数据库clr环境下做,节省往返开销和连接开销。

总之,t-sql 是一门面向查询的语言,以数据为主,但是对过程的处理支持却非常差劲,clr 集成就能非常好的弥补了这点。之所以写个开篇,是看到有些人还是对这种技术的应用环境的不了解。好了,接下来,我准备写一些关于clr 集成的 sql server 2005 下的应用,包括clr proc clr function 等。欢迎大家指正!

附上使用context connection 和使用一般数据库连接的对比图,大家可以参考一下。

以上转自:

http://www.cnblogs.com/FrameWork/archive/2007/03/16/673762.html


http://www.niftyadmin.cn/n/3369870.html

相关文章

linux 输入密码后无法进入系统,【Linux学习笔记十六】用户密码修复和GRUB引导错误无法进入系统解决办法...

CentOS用户密码修复解析:恢复root密码需要在单用户模式下对root账户进行初始化,在系统启动时快速按e-e-e输入single――enter――b对root账户重新设置密码步骤:1.重启系统显示上图界面时快速按e键,进入下图在上图界面中再按e键&am…

[题解] [CQOI2007] 余数求和

题面 题解 考虑到这个等式\(a\bmod b a - b * \lfloor\frac{a}{b}\rfloor\) 所以我们可以得到:\[ \begin{aligned} ans & \sum_{i 1}^{n}k \bmod i\\ & \sum_{i 1} ^ {n}k - i * \lfloor\frac{k}{i}\rfloor \end{aligned} \] 我们可以证得若\(\lfloor\frac{a}{b}\rf…

.Net的一些术语(学习摘录)

.Net运行时(CLR): 也称公共语言运行时(Common Language Runtime)或CLR,它实际上管理代码,他可以处理加载程序、运行程序 的代码以及提供所有支持服务的代码。 受管制的代码(managed code)&…

内蒙古出台机关事务管理办法 严控“三公经费”支出

图为新闻发布会现场。 张林虎 摄 中新网呼和浩特1月16日电 (张林虎)“控制‘三公’经费支出,是提高资金利用效率、建设节约型政府的重要环节。公务接待费、公务用车购置和运行费、因公出国(境)费都是重点严控项目。”16日,内蒙古自治区机关事务管理局副局…

linux串口工具 kermit,Linux下串口工具kermit的安装使用攻略

终端(计算机显示终端)是用户使用系统的入口,是计算机系统的输入输出设备,终端的发展也经历了字符哑终端、图形终端和网络终端三种形式;而console更强调是控制系统的地方,其使用者主要是管理员,从概念上讲terminal的范围…

linux solr日志,2018-04-22 Solr实现搜索功能单机版

Linux 下安装Solrsolr安装版本是 4.10.3安装步骤1.解压缩tomcat tar zxvf 命令2.安装taomcat 在 usr/local 下创建一个目录solr, mkdir /usr/local/solr3.将解压缩好的tomcat pc 到/usr/local/solr , cp -r apache-tomcat-7.0.47 /usr/local/solr/…

Mosquitto MQTT 桥接模式及其配置

最近在研究如何利用 MQTT 连接两个设备。在查询了很多资料后,我了解到可以利用 Mosquitto 的桥接模式。其中有篇文章《Mosquitto MQTT Bridge-Usage and Configuration》(http://www.steves-internet-guide.com/mosquitto-bridge-configuration/&#xf…

C# 反射入门知识(转)lei_captain

1、 什么是反射 2、 命名空间与装配件的关系 3、 运行期得到类型信息有什么用 4、 如何使用反射获取类型 5、 如何根据类型来动态创建对象 6、 如何获取方法以及动态调用方法 7、 动态创建委托 1、什么是反射 Reflection,中文翻译为反射。 这是.…