Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net SmartAssembly内存管理_.net_Memory Management_Obfuscation - Fatal编程技术网

.net SmartAssembly内存管理

.net SmartAssembly内存管理,.net,memory-management,obfuscation,.net,Memory Management,Obfuscation,只是偶然发现。功能9是内存管理,他们声称他们的产品“自动释放不再需要的内存” 这是一个营销策略,还是你认为他们有什么把戏?他们是否只是根据.Net运行时在任何情况下提供的内容进行声明(或者他们正在调用GC.Collect()) 我对产品不感兴趣,DotFuscator就足够了——我只是对如何实现这一点感兴趣。很有趣 A包含以下内容: {smartassembly}使用了几种不同的 降低内存的技术 用法 我们询问了 {smartassembly}用于某些 细节,他们告诉我们 默认情况下,CLR保留

只是偶然发现。功能9是内存管理,他们声称他们的产品“自动释放不再需要的内存”

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

我对产品不感兴趣,DotFuscator就足够了——我只是对如何实现这一点感兴趣。

很有趣

A包含以下内容:

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

我们询问了 {smartassembly}用于某些 细节,他们告诉我们 默认情况下,CLR保留大量 .NET程序集的内存-是否 或者他们没有要求。所以 {smartassembly}智能检测 当CPU空闲时(或大约空闲时) 增加或减少数量 为程序集保留的内存数 根据其要求,- 从某种意义上说是“自动化”GC,除了 记忆可能是,也可能不是 正在使用中

同样地,{smartassembly} (从字面上看,其好处是 感谢访问您的源代码 NET的设计方式)标记了任何 还有所有没有的课程 可检测的“子”类继承 从他们身上“密封”,从而减少 所使用的内存和CPU量 CLR将在运行时运行以确定 应该发挥什么作用 适用于其他课程和 图书馆

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

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


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

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

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


我对这个解释错了吗?

仔细想想,这真是个坏主意。想想一台闲置3小时的服务器,SmartAssembly减少了它的工作集,突然间,用户数量激增,.Net将不得不重新分配所有内存。人们可能应该信任微软:)。我想知道它是否也在单声道上运行这真是个坏主意。在过去,我们使用“内存优化”功能,在使用终端服务的客户端(使用我们的桌面应用程序的同一台机器上有10多个用户会话)中,这会带来严重的性能损失,因为磁盘无法跟上页面错误和交换访问的数量。。。