代表创建缓慢

Dav*_*ulp 7 c# resharper delegates

我升级了ReSharper并看到了以前没有出现的错误.我查了一下,但没有发现它正在标记的错误或潜在问题.

**编辑**:如下所述,它实际上是'堆分配查看器'插件,而不是ReSharper本身将其标记为错误 - 尽管这不会改变问题本身.

创建慢代表:从接口'IPluginHandler'方法

这是在为事件聚合器上的事件订阅插件处理程序期间发生的.

public void Subscribe(IPluginHandler subscriber)
{
  Executing += subscriber.OnExecuting;
  // -- additional subscriptions --
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,Executing是一个事件,并且subscriber.OnExecuting是事件的适当事件处理程序.

要清楚,这是一个ReSharper'软错误',因为代码仍将按预期构建和运行.

所以我的问题是JetBrains的优秀人才对我的标志是什么,以及它的后果是什么.

谢谢

Mat*_*dge 4

这篇 JetBrains 博客文章的评论中有同样的问题。

\n

那里的回复是这样说的:

\n
\n

你好!该插件还有一项内部功能:代码检查以显示 CLR x86 JIT 的 \xe2\x80\x98slow\xe2\x80\x99 (速度慢 10 倍以上)委托实例创建。您可以运行此测试(它从各种方法 \xe2\x80\x93 virtual/interface/generic/etc 创建委托)来查看委托创建性能的差异。

\n

就像分配检查 \xe2\x80\x93 一样,您不应该 \xe2\x80\x99 关心这么多,直到应用程序的某些热路径中的某些性能快照显示对 CLR 内部的长时间调用。就像分配 \xe2\x80\x93 一样,例如,这种检查可能(并且将会)使用新的 RuyJIT 产生误报。

\n
\n

请注意,链接的测试通过箭头注释突出显示了“缓慢”的委托创建:<--

\n