网上怎么查开的房记录查询(查开宾馆记录软件

访客4年前黑客工具351

既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌。C#依靠由NGWS提供的运行时;因此,有必要
知道运行时如何工作,以及它背后所蕴含的概念。
所以,这一章分为两部分——它们是所有的概念和使用的基础。两部分的内容虽然有些重叠,但它有助于加深理解正
在学习的概念。

2.1 NGWS Runtime
NGWS和NGWS Runtime为你提供了一种运行时环境。该运行时管理执行代码,并提供了使编程更容易的服务。只要你的
编译器支持这种运行时,你就会从这种受管理的执行环境中得益。
你猜测C#编译器支持NGWS runtime很正确,但是不仅它支持NGWS runtime,VB和C++也支持。这些为支持运行时所创建
的代码称作"受管代码"(managed code)。以下是你的应用程序从NGWS runtime那里所得到的利益:

交叉语言集成(通过通用语言规范)
自动内存管理(垃圾收集)
交叉语言异常处理(统一展开)
增强安全(包括类型安全)
版本支持("DLL地狱"终结者)
组件交互简化模式

因NGWS runtime 要提供了所有的这些好处,编译器必须把元文件和受管代码一起发出。元文件描述代码中的类型,它
和你的代码存在一起(与PE类似---PE为可变位执行文件)
正如你从很多种交叉语言功能所看到的,NGWS runtime主要是关于高度集成交叉多异编程语言(tight integration 
across multiple different programming languages)。这种支持可达到允许你从一个VB对象派生出一个C#类的程度(我后
面会给出要讨论的文章)。
C#程序员将会喜欢的一个功能是,他们不必担心内存管理—也就是说不必担心臭名昭著的内存泄漏。NGWS runtime提
供了内存管理,当对象和变量的生命期结束(不再被引用)时,垃圾收集器释放它们。我真的喜欢这个功能,因为在COM中的
内存管理一直是我的一块心病。
应该鼓励配置一个管理应用程序或者组件。因为管理应用程序含有元数据文件,NGWS runtime可以利用这些信息,以
确保你的应用程序具有它所需的各种规定版本。所产生的明显效果为,由于你的代码没有相互之间的依赖,很少可能出现
中断。
这章余下来的将分为两部分,每一部分讨论NGWS runtime的各个方面,直到你的C#应用程序能执行为止。
1、中间语言(Intermediate Language,缩写IL)和元数据
2、即时编译器(just-in-time compliers,简称JITers)

2.1.1 中间语言和元数据
由C#编译器生成的受管代码并不是原始代码,但它是中间语言(IL)代码。这种IL代码自身变成了NGWS runtime的受管
执行进程的入口。IL代码明显的优势在于它是CPU无关的,这也意味着,你要用目标机器上的一个编译器才能把IL代码转换
成原始代码。
尽管IL代码由编译器产生,但它并不是编译器提供给运行时仅有的东西。编译器同样产生有关你代码的元数据,它告
诉运行时有关你代码的更多的东西,例如各种类型的定义、各种类型成员的签名以及其它数据。基本上,元数据是类型
库、注册表内容和其它用于COM的信息。尽管如此,元数据还是直接和执行代码合并在一起,并不处在隔离的位置。
IL和元数据存放于扩展了PE格式的文件中(PE格式用于.exe和.dll文件)。当这样的一个PE文件被装载时,运行时从文
件中定位和分离出元数据和IL。
在进一步说明之前,我想给你已有的IL指令的简短目录。尽管它不是一个完整的清单,也不需要你熟记和理解,但是
它列出了你所必需的、C#程序所基于的知识基础。

算术和逻辑操作符
控制流
直接内存访问
堆栈操作
参数和局部变量
堆栈分配
对象模式
实例类型值
临界区
数组
分型位置
即时编译器(JITters)

2.1.2 即时编译器(JITters)
由C#或其它能产生受管代码的编译器所生成的受管代码就是IL码。虽然IL代码被包装在一个有效的PE文件中,但是你
还是不能执行它,除非它被转换成为受管原始代码。这就是NGWS runtime 即时编译器(也称作JITters)大显身手的时候。
为什么你会对即时编译代码感到厌繁, 为什么不把整个IL PE文件编译成原始代码? 答案是时间——需要把IL代码编
译成CPU规格的代码的时间。这种编译将更加有效率,因为一些程序段从来就没有被执行过。例如,在我的字处理器中,邮
件合并功能从来就没有被编译。
从技术上说,全部的处理过程如下:当一个类型被装载时,装载器创建一个存根(stub),并使它连接每一个类型的方
法。当一个 *** 之一次被调用时,存根把控制交给JIT。JIT把IL编译为原始代码,且把存根指针指向缓冲了的原始代码。
接着的调用将执行原始码。在某些位置上(At some point),所有的IL都被转换成为原始代码,而JITter处于空闲状态。
正如我在前面提到的,JIT编译器有很多,不止一个。在Windows平台上,NGWS runtime装有3个不同的JIT编译器。
JIT——这是NGWS runtime默认使用的JIT编译器。它是一个后台(back end)优化的编译器 ,在前台(up front)实行数
据流分析,并创建了高度优化的受管原始代码做为输出结果。JIT可以使用不严格的IL指令集编码,但是所需资源将十分可
观。主要的限制在于内存足迹(footprint)、结果工作集,以及实行优化所消耗的时间。
EconoJIT—— 和主JIT相比,EconJIT的目标是把IL高速地转换成受管原始代码。它允许缓冲所产生的原始代码,但是
输出码并不象主JIT生成的代码那样优化(代码小)。当内存紧张时,快速代码生成方案的优势将荡然无存。通过永久地抛弃
无用的已JIT过的代码,你可以把更大的IL程序装入代码缓冲区。因为JIT编译快,执行速度也仍然很快。
PreJIT—尽管它是基于主JIT的,但操作起来更象是一个传 统的编译器。你安装了NGWS组件,它才能运行,才可以把

相关文章

霉霉和黑客(霉霉的黑客粉)

霉霉和黑客(霉霉的黑客粉)

本文目录一览: 1、刷蛇什么意思 2、霉霉和贾斯汀比伯谁红 3、斯威夫特泰勒(泰勒斯威夫特风格的黑化史) 4、“金评霉”事件真相大白,霉霉被迫网暴四年,结局如何? 5、霉霉和侃爷怎么回...

投标怎么赚钱?招投标怎么赚钱

投标怎么赚钱?招投标怎么赚钱

招投标公司也就是招标代理机构,是从事招标代理业务并提供相关服务的社会中介组织。由于工作关系与招投标公司有一些接触,有基本了解。主要分为二大类:   第一类收入是合法合规,根据招标代理业务的性质...

悦诗风吟睫毛膏怎么样

悦诗风吟深受多位小仙女喜爱,它的睫毛膏也是有很多小仙女们一直关注的,还挺受欢迎的,怕踩雷的赶紧看过来,跟着小编一起来看看悦诗风吟睫毛膏怎么样。  ...

教你各种黑客技术  如何学习黑客技术

教你各种黑客技术  如何学习黑客技术

作为网络爱好者,我们中的很多人都有一个黑客梦,就如同多数男孩都有一个武侠梦。黑客们凭借着高超的电脑技术、来无影去无踪的身手,宛如一个个武艺高超,轻功卓越的大侠在我们眼前飘过,令人心驰神往,却又可遇而不...

粉笔网CEO张小龙道歉怎么回事 粉笔网CEO张小龙为什么道歉

粉笔网CEO@粉笔张小龙被曝曾发布多条涉嫌侮辱英烈等方面的出格言论,不少网友义愤填膺。 5月29日晚,张小龙发表致歉信,承认言论不当,伤害大家感情,将吸取教训加以改正,同时也意识到“言论自由,但前提...

二次创业(二次创业成功人士的19个经验与教训)

二次创业(二次创业成功人士的19个经验与教训) 编者按:创业维艰。在创业路上,创业者也走过不少弯路,从中也获取了不少经验与教训。在这方面,对于二次创业或者多次创业者而言,他们会更加深有体会。这篇文章...