pet*_*ace 7 c# reflection performance appdomain
我正在托管一个WCF服务,其中的要求是调用一个WCF服务未直接引用的类型的对象,并在其上运行一些(常见的)方法.所以类型是通过反射和AssemblyResolve创建的:这没关系.
但后来我开始思考 - 我们预计可能会有50到100个这样的装配/类型到货,特别是当我们对它们进行版本控制时.由于所有这些程序集都在mem中引用,因此这应该是膨胀(仍然在理论上而不是实践中)服务主机应用程序的内存和性能.
所以我们应该卸载:但唯一的方法是通过appdomain.我们的想法是,每个程序集都会以某种方式运行在它自己的appdomain中,而WCF服务实际上只是将消息传递给相应的appdomain.如果appdomain未用于some_period_of_time,那么我们只需卸载appdomain即可.
我可能会因此而被标记下来,但是一些指导对我们有用:
我没有这方面的经验.如果我不做这样的事情,我担心的是应用程序的大小和性能.然而,根据应用领域的想法,这基本上听起来像是大规模的过度工程.托管这个未知的.dll的要求不是我可以改变的.
我想我的整体问题是:
这个想法听起来像是愚蠢的,与它相关的专业人士/骗子是什么?
当内存中有大约 100 个程序集时,该进程应该运行良好吗?
您必须尝试(创建模型很容易),但您只能使用代码。因此,如果每块 1 MB,您将使用 100MB 的可丢弃内存,我预计不会出现问题。
前提是您的实例已释放并收集。