【问题标题】:Mark Generation: What is VM: Dispatch continuations标记生成:什么是 VM:调度延续
【发布时间】:2023-04-04 06:20:01
【问题描述】:

“VM: Dispatch continuations”下的分配是什么意思?

(http://i.stack.imgur.com/4kuqz.png)

【问题讨论】:

    标签: ios xcode instruments


    【解决方案1】:

    @InkGolem 在右边。这是 GCD 内部调度块的缓存。

    @AbhiBeckert 相差 1000 倍。16MB 是 200 万个 64 位指针,而不是 20 亿个。

    此缓存是按线程分配的,您看到的只是此缓存的分配大小,而不是实际使用的大小。如果您在后台线程上进行大量调度(并且由于您使用的是 RAC,我猜您是),那么 16 MB 就在范围内。

    基本上不用担心。

    【讨论】:

    【解决方案2】:

    据我了解,Continuations 是一种函数指针传递方式,以便进程知道接下来要执行什么,在您的情况下,我假设这些将是来自 GCD 的调度块。我假设虚拟机有一堆随着时间的推移使用的这些,这就是你在仪器中看到的。再说一次,我不是线程专家,我可能完全不在左侧领域。

    【讨论】:

    • 但它是 16 兆字节!那将是 2,000,000,000 个函数指针。对我来说听起来不对,内存太多了。
    猜你喜欢
    • 2013-05-29
    • 2016-09-30
    • 2011-10-08
    • 2012-03-12
    • 1970-01-01
    • 2016-01-18
    • 2011-05-22
    • 2013-09-02
    • 2017-01-22
    相关资源
    最近更新 更多