Performance 紧凑的框架和JIT。需要多长时间

Performance 紧凑的框架和JIT。需要多长时间,performance,compact-framework,jit,Performance,Compact Framework,Jit,我们的应用程序中出现了虚拟延迟。这可以追溯到第一次触摸对象时初始化一个单例,并归咎于JIT。我并不完全相信这一点,因为没有测量JIT的机制(或者是否存在),整个延迟是7秒。七秒的准时制?!?那是真的吗 不管怎样,我都很难去责怪那些人们无法轻易衡量的事情。不久前,当我浏览了一下这个问题时,我注释掉了一堆代码,并在应用程序的其他地方看到了7秒的延迟“跳跃”。暗示它是在某个后台进程的某个地方发生的(我猜这将把JIT算作一个潜在原因) 只是为了好玩,如果有一个静态对象碰巧引用了许多其他对象,那么有没有人

我们的应用程序中出现了虚拟延迟。这可以追溯到第一次触摸对象时初始化一个单例,并归咎于JIT。我并不完全相信这一点,因为没有测量JIT的机制(或者是否存在),整个延迟是7秒。七秒的准时制?!?那是真的吗

不管怎样,我都很难去责怪那些人们无法轻易衡量的事情。不久前,当我浏览了一下这个问题时,我注释掉了一堆代码,并在应用程序的其他地方看到了7秒的延迟“跳跃”。暗示它是在某个后台进程的某个地方发生的(我猜这将把JIT算作一个潜在原因)


只是为了好玩,如果有一个静态对象碰巧引用了许多其他对象,那么有没有人有一个JIT可能需要多长时间的经验法则?有没有人有更多的参考资料,以便我能够了解更多关于JIT的信息,这样我就有机会了解JIT是否是造成这种速度减慢的原因?

我只看到JIT在一个奇怪的错误中花费了很长的时间(大于1秒),这个错误与模板集合中的模板项目有关(请参见下面的编辑)

无论如何,你看到它“移动”的事实向我明确表明,它可能不是问题所在。为了确定这一点,我将使用RPM查看延迟前后的情况

预期的JIT时间是一件非常模糊的事情,因为有太多的因素可以影响它。处理器速度是一个明显的问题,但不太明显的可能是应用程序存储介质和设备内存压力

存储介质可能会影响JIT速度,因为抖动必须在需要JIT时从介质中拉出IL,如果拉动速度慢,则抖动速度也会慢

内存压力非常大,可能会对CE设备产生严重影响。这里的问题是,当您开始耗尽内存时,EE将开始在收集过程中抛出JITted代码——除了调用堆栈之外的所有东西。现在,如果你在一个例程中,例如,调用一些工作者或助手的东西,或者有一个线程在运行,那么这个助手方法可能会被倾斜、抖动、抖动等等。这被称为“鞭打”

用RPM识别后者相当容易(修复它可能不那么容易)。查看频繁提升的代码数量,并查看音调数量的增加与您感知的锁定之间的强相关性

编辑:我终于找到了。

可以在这里找到JIT(和GC)计时器等:

.NET Compact Framework中的性能计数器 ()

在.NET Compact Framework上监视应用程序性能第I部分-启用性能计数器()

使用.Net Compact Framework远程性能监视器()分析设备应用程序性能

.NET Framework中的性能计数器
()

问候,,
tamberg

感谢您对错误的描述。v、 很有趣,也有点有趣。