【问题标题】:Common memory optimization常用内存优化
【发布时间】:2010-09-08 19:22:13
【问题描述】:

csharp、dotnet 2.0 中最常见的内存优化是什么?想看看在winform应用程序中是否存在人们默认情况下可能不会做的常见事情

【问题讨论】:

    标签: c# optimization memory-management


    【解决方案1】:
    • 对小型包装对象使用结构以避免堆碎片
    • 仔细考虑对象的生命周期,尤其是对于大型对象,这样它们就不会出现在 LOH 上,除非您打算这样做
    • 考虑循环内的分配
    • 确保动态大小的数组大小合理,否则会出现分区问题

    【讨论】:

      【解决方案2】:

      如果要对同一个字符串进行多次修改,请使用 StringBuilder 而不是直接修改字符串。

      【讨论】:

        【解决方案3】:

        尽可能多地密封类也应该有所帮助。 AFAIK 这是 SmartAssembly 用来减少内存消耗的一种技巧。

        【讨论】:

        • 这不是为了消耗内存,而是为了速度。密封类的加载和调用速度更快,因为您不必考虑它们的方法可能会被覆盖。
        • 也许在平台的未来版本中,CLR 将首先加载所有密封的类,并在稍后加载派生类型时修补它们。
        猜你喜欢
        • 2015-11-01
        • 1970-01-01
        • 2015-10-02
        • 2011-08-18
        • 1970-01-01
        • 2019-06-22
        • 2010-11-15
        • 2017-01-18
        • 2013-10-11
        相关资源
        最近更新 更多