首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SmartAssembly内存管理

SmartAssembly内存管理
EN

Stack Overflow用户
提问于 2008-12-04 08:13:20
回答 2查看 797关注 0票数 4

我刚碰到本网站。特性9是内存管理,他们声称他们的产品“自动释放不再需要的内存”。

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

不太感兴趣的产品,DotFuscator对我来说就够了--我只是对如何实现这一目标感兴趣。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-04 08:28:35

有意思的。

2007年的审查包含以下内容:

{smartassembly}使用几种不同的技术来降低内存的使用率。 我们向{smartassembly}的开发人员询问了一些细节,他们告诉我们,默认情况下,CLR为.NET程序集保留了大量内存--不管他们是否请求它。因此,{智能程序集}智能地检测CPU何时空闲(或在此期间),并根据程序集的要求增加或减少程序集的保留内存量--某种意义上说是“自动的”GC,但内存可能使用过也可能没有使用过。 同样,{smartassembly} (由于.NET的设计方式可以真正访问源代码)将任何和所有没有可检测的“子”类继承的类标记为“密封”,从而减少了CLR在运行时使用的内存量和CPU数量,以确定哪些函数应该提供给其他类和库。

同样的评论有一个“前/后”屏幕截图,显示一个应用程序从8M到420 K。我认为这实际上只是减少了应用程序的工作集,而不是真正的内存需求。同样的“优化”似乎会发生,如果你最小化一个应用程序。它不会突然占用更少的记忆。我不相信桌面.NET框架真的只能在420 K下运行。

自动密封功能很有趣--除了查找虚拟方法之外,我看不出它有什么帮助。我怀疑这种影响是否真的很重要,但我当然还没有拿它作为基准。

所以,没有定论,但我怀疑它是否做了我特别想做的任何事情。

票数 5
EN

Stack Overflow用户

发布于 2012-10-22 16:55:20

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

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

这种解释我错了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/339862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档