所以,我有一个中等到非常复杂的WPF应用程序,我有一个要求,通过Dotfuscator(专业版-客户端有许可证的那个)混淆输出程序集。
三个问题:
- 混淆过程在大约85%的时间内因
OutOfMemoryException
而崩溃 - 耗时较长-平均混淆通过大约需要56分钟才能完成 从基于反射的查找到资源,有一大堆各种各样的问题导致应用程序因混淆的程序集而崩溃。
第一个问题,我已经能够通过运行命令行而不是GUI来缓解(它不会崩溃,至少),第三个问题,如果我能快速迭代选项组合,而不是每个工作日尝试5次,就不会那么大的问题。
真的是总时间在折磨我;任何人都知道任何"快速修复"的想法,以显着改善混淆所花费的时间?有没有可能是我做了什么蠢事在处理过程中造成了某种"气锁",增加了处理时间?我需要按下客户端使用不同的混淆器吗?
一些细节:
- 约。应用程序中的38个组件/组件(其中可能有5-10个是标记为"artifact"的第三方dll,因此它们不会被混淆)
- 这个盒子是一个半强壮的物理服务器,而不是虚拟机。
- 我使用配置文件驱动混淆器,而不是单独处理每个程序集。
- 我已经在上面说的配置文件中标记了一些不包括的东西,比如生成资源
- 所有程序集都标记为'library'
任何想法和/或swag将是最感激的。
您很可能需要更多内存。在运行大型项目时,Dotfuscator在内存中并不是轻量级的。对于大多数项目,我建议至少2gb,最好是4gb。此外,由于额外的虚拟内存空间,它可能在64位下运行得更快。此外,您可能希望确保丢失最新版本的Dotfuscator,因为在过去的版本之间有一些性能改进
exclude通常不会显著加速Dotfuscator,除非你要排除整个程序集。