【发布时间】:2018-05-12 18:33:29
【问题描述】:
所以,对于许多人来说,这似乎是一个非常奇怪的问题,但它是:
假设你有一个抽象类“Object”,它有一个抽象方法 doStuff(),有 10000 个类继承自该方法。
然后在另一个类中,您有一个“对象”字典,其中包含 100 个“对象”类型的随机对象。你对它们调用 doStuff()。
类的数量对性能有影响吗?可执行文件如何找到执行哪个类的方法?这是一个跳转表,一个指针表,一个巨大的 switch-case 的等效逻辑,..?
如果它对性能有任何影响,有没有办法以不同的方式构建代码来消除这个问题?
我觉得我真的想多了。
【问题讨论】:
-
在.Net 中,每个对象都携带了一些额外的信息,即不仅是程序员在对象是其实例的类中编写的成员。在运行时,这些额外信息用于(不仅)调用正确的
DoStuff方法。所以实际上,从 object 继承的 2 或 2000 个类在解析正确的调用方法方面没有任何区别
标签: c# performance