【发布时间】:2018-02-19 06:49:49
【问题描述】:
当一个类有 50 个方法并且我们创建该类的 50 个对象实例时,内存中会发生什么?对于具有大量功能和更少内存使用的object,最好的解决方案是什么?
【问题讨论】:
-
AFAIK,类的实例只为其字段占用内存(包括自动实现的属性,因为它们被转换为带有支持字段的常规属性)。
-
@ZoharPeled 你是对的。方法通过隐式
this参数或在静态方法不需要上下文的情况下提供它们的上下文,即它们正在处理的实例。这就是为什么不需要为不同的实例复制内存中的方法。属性只是 getter 和 setter 方法,所以同样适用。这会将字段作为实例中的东西占用内存。 -
旁注:有 50 个方法的类通常被认为是难闻的气味。您可能想查看您的设计,看看所有方法是否确实必须在同一个对象中,并且没有其他方法分组可以使您的 API 易于理解/使用。
标签: c# performance memory memory-management heap-memory