方法会占用内存吗

方法会占用内存吗

本文介绍了C#方法会占用内存吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当有一个包含50个方法的类并且我们创建该类的50个对象实例时,内存中会发生什么? object具有很多功能且内存使用较少的最佳解决方案是什么?

What happens in memory when there is a class with 50 methods and we create 50 object instances of that class? What is the best solution for having an object with a lot of functionality and less memory usage?

推荐答案

是的,C#/.Net方法需要基于每个AppDomain的内存,而方法/属性没有按实例的成本.

Yes, C#/.Net methods require memory on per-AppDomain basis, there is no per-instance cost of the methods/properties.

费用来自:

  • 方法元数据(类型的一部分)和IL.我不确定IL会保持加载多长时间,因为它真的只需要JIT,所以我猜它会根据需要加载并丢弃.
  • 在方法被JIT之后,机器代码会一直保留到卸载AppDomain(或者如果编译为中性,直到进程终止)

因此使用50个方法实例化1个或50个对象将不需要为方法使用不同的内存量.

So instantiating 1 or 50 objects with 50 methods will not require different amount of memory for methods.

这篇关于C#方法会占用内存吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-22 13:43