net第一次运行较慢 然后会变快的界定问题

问题描述

如何界定这个第一次。比如:一个c/s架构的程序,我机器重启,运行该程序是第一次?还是我程序退出后。再次打开,这每次运行都算第一次?还有,程序中许多功能菜单,对于每个菜单,是不是也存在这个问题呢?比如:此次运行该程序,可能我已经操作A功能好多次了,但B还没有,这时要操作B,是不是也属于第一次呢?也就是,会比刚才的体会明显慢一点。

解决方案

解决方案二:
编译后第一次运行比较慢退出再打开不是这个第一次运行
解决方案三:
这个第一次是指的第一次编译把
解决方案四:
要知道.net的編譯原理:一個程序在編譯之後並不是機器語言而是.netCIL,要等到運行的時候,.net再進行一次編譯將CIL轉為本機可以執行的機器語言(經過優化的),因此這個需要一個過程,也就是所謂的“第一次執行比較慢”。等到退出這個程序,再打開,因為CLR仍然儲存了相關的類庫,所以執行效率會快很多。明白上這個道理的話,相信樓主知道怎么區分了。此次运行该程序,可能我已经操作A功能好多次了,但B还没有,这时要操作B,是不是也属于第一次呢-------------------------這個問題不是一定的,如果有該操作有加載新的類庫,也算第一次吧,否則就不是
解决方案五:
我正在看的《InsideC#.SecondEdition--MicrosoftPress》里面说:是编译好的.EXE文件具有标准的PE(PortableExecutable)头,并导入一个_CorExeMain函数。在运行的时候装载标准PE头和所有的依赖的DLL,如_CorExeMain函数的DLL(mscoree.dll)。然后系统装载器跳转到PE中的入口点,通过_CorExeMain函数执行PE中的MSIL代码。MSIL代码并不能直接执行,而是通过JIT编译为CPU指令。JIT编译只在程序中的方法被调用时发生。所以我觉得如果是就PE的程序载体来说,“第一次运行慢”就是指调入后执行的绝大部分加载、编译工作的过程,以后再运行、调用的某些方法等,只能算运行中编译,这个过程可能就非常快了,呵呵~

时间: 2024-12-03 02:21:09

net第一次运行较慢 然后会变快的界定问题的相关文章

Android中设置只是程序第一次运行才显示的界面

程序安装后第一次启动: 启动页-->功能介绍页-->系统主页 以后启动: 启动页-->系统 主页 所以在启动页中判断一下就可以了 可以弄一个文件保存一个状态,推荐用SharedPreferences . 1.可以定义一个变量来判断程序是第几次运行,如果是第一次则跳转到引导的Activity,如果不是 第一次则执行系统主页. 判断系统是第一次运行的代码实现如下: 在Activity中添加代码: 使用SharedPreferences来记录程序的使用次数 一下是实现的代码: public v

android判断软件是否第一次运行的方法

  本文实例讲述了android判断软件是否第一次运行的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE); boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true);

怎么让win7电脑中的aero peek功能运行变快?

怎么让win7电脑中的aero peek功能运行变快?   win7系统 1.同时按下win+r,然后在运行窗口中输入regedit并单击回车,这样就可以打开注册表编辑器窗口了. win7系统 2.在注册表编辑器左侧的窗口中依次展开HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced,接下来,在右侧窗口的空白处点击右键-新建DWORDS(32位)键值. win7系统 3.将新建的32位键值重命名为Deskt

wpf-WPF程序每次第一次运行到特定弹出窗体时报错,之后再重新执行到该处无任何问题

问题描述 WPF程序每次第一次运行到特定弹出窗体时报错,之后再重新执行到该处无任何问题 WPF程序每次第一次允许时通过ShowDialog弹出窗体时报"算术运算中发生溢出或下溢",但重新点击弹出窗体将不再报错. 解决方案 是不是程序加载前或者最小化的时候width/height读到了0,加上一个判断. 解决方案二: 如果将该弹出框放到流程的前面则不会有问题 -> 不知道你所谓的"流程"到底是怎样. 先理清思路,这个是个计算出的错.

Android中设置只有程序第一次运行才显示的界面实现思路_Android

程序安装后第一次启动: 启动页-->功能介绍页-->系统主页 以后启动: 启动页-->系统主页 所以在启动页中判断一下就可以了 可以弄一个文件保存一个状态,推荐用SharedPreferences. 1.可以定义一个变量来判断程序是第几次运行,如果是第一次则跳转到引导的Activity,如果不是第一次则执行系统主页. 判断系统是第一次运行的代码实现如下: 在Activity中添加代码: 使用SharedPreferences来记录程序的使用次数 一下是实现的代码: 复制代码 代码如下:

在环信ios SDK2.1.8版本中,第一次运行Demo后,在修改回自己APP的appkey运行时,确拿不到自己用户信息

问题描述 这是什么原因 帮忙查看 解决方案 NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];    NSString *appkey = [ud stringForKey:@"identifier_appkey"];    if (!appkey)    {        appkey = @"62242102#fudonghai0809";        [ud setObject:appkey

hibernate-新手Hibernate写了个小程序,第一次运行报错如下,好像还有数据库连不上的问题,不知道该怎么改

问题描述 新手Hibernate写了个小程序,第一次运行报错如下,好像还有数据库连不上的问题,不知道该怎么改 九月 07, 2015 10:31:46 下午 org.hibernate.annotations.common.Version INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 九月 07, 2015 10:31:46 下午 org.hibernate.Version logVersion INFO: HHH0

C#的winform程序发布后,第一次运行很慢

问题描述 C#的winform程序发布后,第一次运行很慢,不关闭程序,等第二次运行的时候,速度就正常了.若关闭程序,重开,第一次运行也是如此...有人说是,预编译.是这样的吗?为啥会这样?有什么解决方法?求大神解答. 解决方案 解决方案二:可能在初次运行的时候读取了大量的数据到内存.解决方案三:引用1楼guwei4037的回复: 可能在初次运行的时候读取了大量的数据到内存. 没有啊,程序很小的,数据量也不大.解决方案四:引用1楼guwei4037的回复: 可能在初次运行的时候读取了大量的数据到内

android判断软件是否第一次运行的方法_Android

本文实例讲述了android判断软件是否第一次运行的方法.分享给大家供大家参考.具体如下: SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE); boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true); Editor editor = sharedPreferen