【问题标题】:is heap per logical processor in dotnet?dotnet 中每个逻辑处理器的堆是多少?
【发布时间】:2013-07-02 21:38:52
【问题描述】:

我有几个问题,包括两个案例的标题中的一个(在 dotnet 和一般情况下)

(1) 是每个逻辑处理器的堆(我猜一般是肯定的)

(2) 是每个逻辑处理器的地址空间(通常是?)

(3) 一个进程可以访问多个堆吗? (我猜 dotnet 的 No 和 YES 通常是正确的。如果 YES 通常是正确的。人们为什么以及何时会这样做?)

(4) 是每个 dotnet 框架的 GC。

谢谢

【问题讨论】:

    标签: .net process heap-memory processor address-space


    【解决方案1】:

    所有台式电脑都使用冯诺依曼架构,这意味着数据和指令有一个共同的内存。内存就是内存所以

    1) 是每个逻辑处理器的堆(我猜一般是肯定的)

    堆是内存的一部分,所以不,它是整个内存,而不是 CPU

    (2) 是每个逻辑处理器的地址空间(通常是?)

    不,地址空间是每个进程的,因为它是该进程可用的内存

    (3) 一个进程可以访问多个堆吗?

    不,见(1)

    (4) 是每个 dotnet 框架的 GC。

    GC 只是一种用于自动收集未使用引用的技术。它也用于 Java 中

    【讨论】:

    • blogs.msdn.com/b/dotnet/archive/2012/07/20/… 在这篇文章中。它说“对于服务器 GC,每个逻辑处理器有一个堆。”究竟是什么意思?
    • @hongpei 有多个堆,但它们的行为就像一个大堆。任何处理器都可以访问“属于”任何其他处理器的堆。这允许多个垃圾收集器同时运行,并且还允许您的代码在垃圾收集器在另一个线程上运行时继续在其他线程上运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2014-02-23
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多