关于vs编译

yg11hxj 2009-11-30 12:33:09
当我们在VS里按F5(调式)或CRTL+F5 (编译)的时候

是将源代码编译成中间语言还是机器语言呢?

如果是中间语言的话。。那cpu也不识别呀???? 晕了

还有当我们断点调式的时候,是不是先编译断点前的代码。当按F11的时候,移一行就编译一行代码?

本人菜鸟,见笑了哈.....

...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wiki14 2009-11-30
  • 打赏
  • 举报
回复
VS web开发中 ,页面创建后,就可以提供给用户了。因为为了要创建最终测HTML页面,服务器 实质上要执行 服务器段控件 的代码, 即运行页面,就像运行程序一样。 按下 F5 或是Ctrl+F5 后 ,将执行一下步骤:

1、站点的所有页面编译成MSIL(Microsoft Intermediate Language 微软中间语言),然后把它们和 支持文件存储在一个程序集中。此时开发语言(如VB、C#等)间的差别就消失了,因为结果是 MSIL 形式。 但是并未对运行页面的硬件进行优化。

2、程序集被实时编译(JIT)----从MSIL编译成针对提供服务的机器优化的本机代码。

3、VS启动IIS(或DWS),浏览器打开并向服务器请求页面。
akey307 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 yg11hxj 的回复:]
当我们在VS里按F5(调式)或CRTL+F5 (编译)的时候

是将源代码编译成中间语言还是机器语言呢?

如果是中间语言的话。。那cpu也不识别呀???? 晕了
[/Quote]

是编译成中间语言。

你说的对,CPU是不识别中间语言,CPU只识别机器代码。正因为如此,在中间语言到机器代码还要再经过一次编译。完成把中间代码编译为机器代码就是.Net中的CLR(公共语言运行库)。
akey307 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yg11hxj 的回复:]
当第一次运行a.aspx页的时候,首先会被编译成MSIL,然后再编译成机器语言,是这样的吗?

然后第二次运行a.aspx页的时候,直接调用第一次的MSIL,然后再编译成机器语言,是这样的吗?
[/Quote]

注意,不是在第一次运行页面的时候才编译MSIL。在第一次运行页面之前,在服务器端,相关的MSIL已经被编译好了。
yg11hxj 2009-11-30
  • 打赏
  • 举报
回复
当第一次运行a.aspx页的时候,首先会被编译成MSIL,然后再编译成机器语言,是这样的吗?

然后第二次运行a.aspx页的时候,直接调用第一次的MSIL,然后再编译成机器语言,是这样的吗?
yg11hxj 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 akey307 的回复:]
引用 3 楼 yg11hxj 的回复:
当第一次运行a.aspx页的时候,首先会被编译成MSIL,然后再编译成机器语言,是这样的吗?

然后第二次运行a.aspx页的时候,直接调用第一次的MSIL,然后再编译成机器语言,是这样的吗?


注意,不是在第一次运行页面的时候才编译MSIL。在第一次运行页面之前,在服务器端,相关的MSIL已经被编译好了。
[/Quote]
我说的是在VS里第一次编译a.aspx的时候。。也是像四楼说的那样吗?

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧