【问题标题】:Are there any AppDomain/"Dynamically compiled Code" limits?是否有任何 AppDomain/“动态编译代码”限制?
【发布时间】:2023-03-05 11:31:01
【问题描述】:

我正计划编写一个游戏,用户必须编写自己的 C# 代码才能玩它。 由于我不能信任用户提交的代码,我想为每个用户创建一个 AppDomain。 每个用户都可以编写几个类,所以我需要动态编译和实例化每个类。其中一些类将有多个实例。

我不想限制用户数量,但可以说注册了几百个用户。 这意味着我需要几百个 AppDomain,并且我正在编译/实例化更多的用户代码类。

在达到前面提到的用户数量之前,我是否会更早地达到任何限制? (CPU/内存)

【问题讨论】:

    标签: c# limit appdomain dynamic-compilation


    【解决方案1】:

    您可以创建的 AppDomain 数量受可用内存量的限制。因此,内存越多,您可以创建的 AppDomain 就越多。 CLR 没有限制。

    如果您想找出您愿意在其上运行应用程序的特定操作系统/硬件拥有的 AppDomain 数量,您可以编写一个简单的应用程序,它以恒定速率吐出 AppDomain,看看您能走多远在崩溃之前。虽然不是精确值,但它可以为您提供一个很好的近似值。

    【讨论】:

    • 好吧,听起来我想做的事情并不是一个疯狂的想法。我担心这就像在 10 个线程完成时创建类似一百万个线程的东西。谢谢
    • @Arkoh,不,当您想确保对不同代码部分进行适当的沙盒处理时,这不是一个疯狂的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    相关资源
    最近更新 更多