【问题标题】:Any side effects to using MarshalByRefObject?使用 MarshalByRefObject 有什么副作用吗?
【发布时间】:2013-09-20 20:48:10
【问题描述】:

我有一个案例,我必须跨 AppDomains 使用一些类。为了使它们工作,我让它们从 MarshalByRefObject 继承。这些类的一切都按预期工作。但是这些类在我们的整个系统中都使用,并且 99% 的时间这些类将仅在一个 AppDomain 中使用。在单个 AppDomain 中使用这些类时,从 MarshalByRefObject 继承是否有任何负面影响?

谢谢,
跳过

【问题讨论】:

    标签: c# .net remoting


    【解决方案1】:

    当然,MRBO 对抖动生成的代码有很大的影响。对类的字段的任何访问都会导致调用在 CLR 中实现的辅助方法,而不是访问该字段的单个 CPU 指令。

    这是不可避免的,只有 CLR 知道对象实际上是代理还是真正的交易。并且代理需要模拟一个带有远程调用的字段。如果它不是代理,那么您仍然需要为辅助调用开销付费,这会慢一个数量级。

    无法预测这是否真的会对您的代码产生影响,我们在这里谈论的是纳秒。只有在减速变得明显时,您才可以采取措施。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2023-03-29
      相关资源
      最近更新 更多