代码之家  ›  专栏  ›  技术社区  ›  Jonathan C Dickinson

SmartAssembly内存管理

  •  3
  • Jonathan C Dickinson  · 技术社区  · 17 年前

    this website . 功能9是内存管理,他们声称他们的产品“自动释放不再需要的内存”

    这是一个营销策略,还是你认为他们有什么把戏?他们是否只是根据.Net运行时在任何情况下提供的内容进行声明(或者他们是 正在调用GC.Collect())?

    我对这个产品不太感兴趣,DotFuscator就足够了——我只是 真正地

    2 回复  |  直到 17 年前
        1
  •  4
  •   Jon Skeet    17 年前

    有趣的

    review from 2007

    {smartassembly}使用了几种不同的 降低内存的技术 用法

    我们询问了 细节,他们告诉我们 默认情况下,CLR保留大量 .NET程序集的内存-是否 {smartassembly}智能检测 增加或减少数量 为程序集保留的内存数 从某种意义上说是“自动化”GC,除了 记忆可能是,也可能不是 正在使用中。

    感谢访问您的源代码 还有所有没有的课程 可检测的“子”类继承 所使用的内存和CPU量 应该发挥什么作用 图书馆。

    同一评论中有一对“before/after”屏幕截图,显示了一个从8M到420K的应用程序。这对我来说意味着它实际上只是减少了应用程序的工作集,而不是真正的内存需求。如果你最小化一个应用程序,同样的“优化”也会出现。它不会突然占用更少的内存。我不相信桌面.NET框架可以 真正地 仅使用420K运行。

        2
  •  0
  •   nflash    13 年前

    我可能错了,但在我看来,SmartAssembly将数据推送到页面文件。如果在任务管理器中选择CommitSize和PF delta列,您将看到尽管工作集减小了大小,但提交大小几乎保持不变。如果您尝试访问应用程序中的某些内容,您将看到许多页面错误。

    如果这是“内存优化”的行为,那么我认为该名称不适合该功能,应该简单地称为“去优化”,因为访问页面文件的成本可能会显著降低性能。

    我对这个解释有错吗?