【问题标题】:Return of ICloneable Object (memory point of view) c#ICloneable Object的返回(内存角度)c#
【发布时间】:2011-07-18 09:52:21
【问题描述】:

两者之间是否有区别: 1-return X.Clone(); 和 2-Y=X.Clone(); return Y; 从内存的角度看?

【问题讨论】:

  • 没有。 .NET 语言被垃圾回收。

标签: c# memory memory-management


【解决方案1】:

second 的情况下,您只需将一个指针多分配给相同的内存位置。所以对于 32 位系统,它是 + 4 个字节。

【讨论】:

    【解决方案2】:

    虽然编译器可能会将其优化掉,但存在潜在差异。仍然会创建一个对象 - 您所做的一切(最坏的情况)是创建一个对它的附加引用,然后很快就会超出范围。

    任何差异都可以忽略不计,您不必担心。 :)

    【讨论】:

    • 所以只有 +4bytes 一旦超出范围就会被释放,对吧?
    • 这是一个参考 - 可能是 4 个字节,也可能是 8 个字节,或者由于跟踪程序,它可能更多。关键是,您不应该关心或担心它,.NET 内存管理会处理它。有一个引用很快就会超出范围,并且很可能会立即释放任何内存。对于这个问题/点,关注、调查或担心的理由绝对为零。
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    相关资源
    最近更新 更多