c# - C# 类中私有(private)、 protected 、公共(public)和内部方法的性能有什么不同吗?

标签 c# performance class methods members

在 C# 类中,privateprotectedpublicinternal 方法的性能有什么不同吗?我对消耗更多处理器时间或 RAM 感兴趣。

最佳答案

不知道正常调用有任何性能差异;当通过动态调用或反射访问时,更受限制的访问可能需要更多的工作,因为调用者可能需要更仔细地验证。在正常的 JIT 编译情况下,访问可以由 CLR 验证一次,然后视为理所当然。我猜想 JIT 编译(和 IL 验证)本身可能会因为更严格的访问而稍微慢一些 - 但我很难相信这会很重要。

这应该绝对不是决定使用哪种辅助功能的一个因素,即使不知何故存在一些我不知道的微小性能差异。如果您认为您可以通过使可访问性不同于设计的“自然”方式来获得性能优势,那么您绝对应该对前后案例进行基准测试——我怀疑您很难找到一个可以可靠地衡量差异的真实情况。

同样的建议适用于所有类型的微优化:它几乎从来都不是一个好主意,并且应该绝对只能在仔细测量的情况下进行。

关于c# - C# 类中私有(private)、 protected 、公共(public)和内部方法的性能有什么不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384987/

相关文章:

c# - 单元测试 (C#)

c# - HttpClient Gzip 压缩

java - Utils 文件是好的做法吗?

performance - 网络固有的瓶颈是什么?

javascript - MooTools 中的类转换?

c# - C# 加密库如何处理小于加密算法所需 key 大小的 key ?

jQuery hasClass() - 检查多个类

arrays - 阈值下最大绝对子数组和算法

java - 对象无法访问定义为公共(public)的方法

python - 通过用新方法替换模型类的实例方法来模拟它