用Visual Studio等IDE写c# Hello World很简单,但是不用IDE能打印Hello World吗?不是说在工作中脱离IDE,而是学习CLR的执行模型。本文使用的是VS2008,但该技术也适用于VS2017或更高版本。
你好世界
1.创建一个新的记事本,输入下面的代码并保存为HelloWorld.txt..
第一个写线在执行前需要JIT编译。由于WriteLine的代码已经编译,第二个WriteLine会直接执行内存块中的代码,跳过JIT编译。
由于内存分配,JIT编译过程等。,程序第一次运行时会造成一些性能损失。这种感觉在写ASP.NET的时候特别明显。按F5会等待很长时间,然后显示主页。
感觉的过程模拟如下。用很多类来延长内存分配时间,参考这个文件HelloWorld.cs (blog park不支持txt格式):
再次运行命令CSC/out:hello.exe你好世界. txt获取Hello。执行时发现有一定延迟后才能打印helloworld。
生成本机代码
使用提供的NGen.exe。NET,IL代码可以编译成原生代码,可以解决上述问题。NGen.exe有两个功能:
1.加速应用程序的启动。因为代码已经编译成本机代码,所以运行时不需要花时间编译。
2.减少应用程序的数量。如果一个程序集同时加载多个进程,NGen.exe会将它编译成本机代码,并保存在一个单独的文件中。这样就可以通过“内存映射”的方式同时映射到多个进程,这样就可以共享代码,避免每个进程一个代码。
再次运行Visual Studio 2008(2005,2010)命令提示符
运行以下命令:ngen install Hello.exe:
命令完成后(我的机器大约需要10秒钟才能再次输入命令),运行Hello会发现Hello World可以立即打印,没有任何延迟。
1.《记事本编程代码 用记事本写C#代码》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《记事本编程代码 用记事本写C#代码》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/1608604.html