gpt4 book ai didi

xamarin - (何时)Xamarin.iOS 垃圾收集器是否停止整个应用程序?

转载 作者:行者123 更新时间:2023-12-02 16:36:34 26 4
gpt4 key购买 nike

Xamarin Cross-Platform Performance Documentation状态:

When SGen starts a garbage collection, it will stop the application’s threads while it reclaims memory.

我想知道一些细节:

  • 我非常认为这适用于 Xamarin.iOS?这是正确的吗?
  • 这适用于整个申请吗?也就是说,也是非托管的一面?
    • native ui 线程也停止了吗?
    • 非托管线程也会停止吗?例如。由通过 P/Invoke 包装的 native 库创建的线程?
  • 所有集合(次要和主要)都会停止线程吗?或者这只适用于主要收藏?
  • 以防万一:去年的行为有变化吗?

最佳答案

标准警告适用,您应该进行分析以了解在您的案例中效果如何,但以下是一些答案:

  1. 这当然适用于 Xamarin.iOS。
  2. 是的,这会阻塞 UI 线程。
  3. 我猜测“纯非托管”后台线程(即从 native 库启动且不引用任何托管代码)不会被阻止,但这只是猜测。
  4. 次要集合也会阻塞,但时间通常要短得多。

最后,是的,最近随着 concurrent garbage collection 的添加,情况发生了显着变化。 :

Traditionally, when Mono’s memory manager determined that it should perform a garbage collection, the collector had to pause all Mono running threads, perform the garbage collection, and once it was done, it resumed the execution of those threads.

With concurrent garbage collection, we are able to perform collections on the old generation (what we call major collections) mostly concurrently with your application - it happens at the same time as your program is running. When the major collection is completed, the collector only needs to pause the Mono threads for a very brief period of time at the end.

并发 GC 可作为 Xamarin 当前稳定版本中的构建选项(有关详细信息,请参阅 link)。

关于xamarin - (何时)Xamarin.iOS 垃圾收集器是否停止整个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45408689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com