c# - 实现接口(interface)的开销

标签 c# java .net performance interface

我的一位同事告诉我,实现接口(interface)会引入开销。这是真的吗?

我不关心微优化;我只想知道这需要更深入的细节。

最佳答案

忍不住测试了一下,貌似几乎没有开销。

参与者是:

Interface IFoo    defining a method
class Foo: IFoo   implements IFoo
class Bar         implements the same method as Foo, but no interface involved

所以我定义了

Foo realfoo = new Foo();
IFoo ifoo = new Foo();
Bar bar =  new Bar();

并调用该方法,该方法对每个变量进行 20 次字符串连接,10,000,000 次。

realfoo:   723 Milliseconds
ifoo:      732 Milliseconds
bar:       728 Milliseconds

如果该方法什么都不做,实际的调用会更加突出。

  realfoo: 48 Milliseconds
  ifoo: 62 Milliseconds
  bar: 49 Milliseconds

关于c# - 实现接口(interface)的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/890687/

相关文章:

java - 尝试单击弹出窗口的按钮时出现 NoSuchElementException

java - 检查字符串是android代码中的URL吗?

c# - 在 WHILE 循环中处理 C# 文件流输入导致执行时间错误

c# - 这个foreach可以改进吗?

java - 国际化域名 -> UnknownHostException

asp.net - 将 background-url css 属性设置为 .net 中的内存图像

c# - 如何在调用函数时自动调用事件?

c# - 以编程方式将枚举类型绑定(bind)到组合框

c# - 如何在 ASP.NET MVC 5 中将 IAuthenticationManager 与 Ninject 绑定(bind)?

c# - 从 Inno Setup 将程序集添加到 GAC