Есть ли разница в отношении исполнения частных, защищенных, общественных и внутренних методов в классах C #?

StackOverflow https://stackoverflow.com/questions/7384987

Вопрос

Есть ли разница в производительности методов private, protected, public и internal в классе C #?Меня интересует, потребляет ли один больше процессорного времени или оперативной памяти.

Это было полезно?

Решение

Я не осознает любую разницу производительности для нормального вызова; Возможно, что более ограниченный доступ займет немного больше работы при доступе с помощью динамического вызова или размышлений, поскольку абонент может потребоваться проверять более тщательно. В нормальном скомпилированном JIT-скомпилированном случае доступ может быть подтвержден CLR только один раз, а затем приняты как должное. Я полагаю, возможно, что сама с компиляцией JIT (и IL Verication) может быть немного медленнее для более ограничительного доступа - но мне трудно поверить, что это будет значительным.

Это должно быть абсолютно не быть фактором определения того, какие доступности использовать, даже если каким-то образом есть некоторая крошечная разница производительности, о которой я не знаю. Если вы считаете, что вы сможете достичь пособия по производительности, сделав доступность чего-то, кроме «натурального» одного для вашего дизайна, вы обязательно должны определенно оценить ранее / после случая случаев - я подозреваю, что вам будет трудно найти Ситуация на реальном мире, где разница надежно измерима.

Один и тот же совет идет для всех видов микрооптимизации: в любом случае, это почти никогда не является хорошей идеей, и должен определенно проводиться только в осторожном измерении.

Другие советы

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

Если вы сосредоточены на оптимизации, возможно, вам стоит попробовать сделать узкое место кода более «процедурным», чем объектно-ориентированным.Это принесет небольшое улучшение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top