仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1057|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET教程之你大概错过的东西:.NET 3.5 SP1中的JIT加强仓酷云

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:26:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前天傍晚我发表了《net网页编程的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。在.NET平台里,年夜部分编译器的优化并非经由过程VB和C#编译器来完成的。它们宁肯把优化的处置推后到CLR的立即(JustInTime,JIT)编译器读取IL,并转换为原发火器码的时分来完成。因为这个缘故原由,对JIT的改动会极年夜地影响之前编译好的程序集。
一个次要的影响就是内联函数(InliningFunction)挪用。之前,JIT对内联办法的处置十分守旧,VanceMorrison注释了其中启事,
它对内联的处置并非很好。内联老是削减指令实行的数目(这是因为最低限制的挪用和前往指令没有被实行),可是它能(并常常)让了局代码变得很年夜。年夜部分人都能直觉地舆解,内联年夜的办法(好比1Kb的)不是很成心义,而内联十分小的办法可让挪用的占用空间更小(因为挪用指令才5字节),如许的选择老是准确的,可是介于二者之间的办法要怎样处置呢?

风趣的是,当你让代码变年夜时,你也就让它实行迟缓,由于内存生成地迟缓;你的代码越年夜,它越不会放在最快的CPU缓存(称之为L1)内里实行,在那样的情形下,处置器必要实行3-10个周期直到它能从别的的缓存(称之为L2)中猎取到实行代码,假如L2缓存中还不存在,那末就必要到主内存中猎取(必要消费10+周期)。关于在严密轮回中实行的代码,如许的了局不会有甚么成绩,由于一切的代码都合适放进到最快缓存中(典范的是64K),不外关于“惯例的”代码,它经由过程大批的办法来实行大批的代码,“越年夜就越慢”的效果就十分明显。更年夜的代码也就意味着在启动时从磁盘猎取代码必要更年夜的磁盘I/O,这就意味着你的使用程序启动较慢。
在ServicePack1中,微软引进了一个新的基于代码尺寸的启示式算法,来判别挪用是不是处于一个轮回中。在惯例情形下,函数只要当在挪用空间中的了局呆板码比原始版本要小时,才干被内联。如许做就包管了尽量多的代码能合适CPU的缓存,当缓存不敷用时,就可以对功能发生伟大的影响。
当处在轮回中时,分部非常也能够很好地事情。这是由于据推想函数一般会被屡次挪用,以是CLR同意内联函数能够增加至原始挪用巨细的5倍年夜。相似值范例优化如许的前提有大概更进一步地增添允许尺寸的巨细。
检察英文原文:InCaseYouMissedIt:JITEnhancementsin.NET3.5SP1
来自:http://www.infoq.com/cn/news/2008/10/JIT-Inlining
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。
活着的死人 该用户已被删除
沙发
发表于 2015-1-21 06:59:18 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
爱飞 该用户已被删除
板凳
发表于 2015-1-26 14:31:27 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
小魔女 该用户已被删除
地板
发表于 2015-2-3 05:48:45 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-8 19:45:07 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
柔情似水 该用户已被删除
6#
发表于 2015-2-13 04:49:27 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
简单生活 该用户已被删除
7#
发表于 2015-2-26 22:37:19 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
小女巫 该用户已被删除
8#
发表于 2015-3-8 18:22:09 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
9#
发表于 2015-3-13 07:09:38 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-7 03:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表