Влияние на производительность виртуальных методов - PullRequest
6 голосов
/ 30 марта 2012

Для обеспечения модульного тестирования и макета стало обычной практикой объявлять методы и свойства как виртуальные. Есть ли влияние на производительность объявления чего-то виртуального, как предполагается, не виртуального?

Ответы [ 3 ]

9 голосов
/ 30 марта 2012

В общем, разница в том, что виртуальные методы вызываются с использованием кода операции Callvirt, тогда как не виртуальные методы используют стандартный код операции вызова. Call Opcodes определенно быстрее, чем Callvirt, но я никогда не считал, что он достаточно существенен, чтобы оправдывать принятие проектных решений на основе этого.

Premature optimization is the root of all evil.

1 голос
/ 30 марта 2012

Я не знаю специфики, но я знаю, что вам не нужно беспокоиться об этом для 99% приложений.

btw - Если вы выбираете макет интерфейсов вместо классов, то вывиртуальные методы не нужны.

Удачи, Том

1 голос
/ 30 марта 2012

Нет, не совсем.

Это не то, что вы собираетесь заметить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...