我有一个MacOS应用程序,它创建了许多不同类型的NSView,其中一些包含WKWebViews。 WKWebViews的数量可能会变得相当大(几十个或更多)。
问题是这些WKWebViews中的每一个都创建了几个进程,这可以在Activity Monitor中轻松看到。当进程数量变得太大时,整个系统基本上停止运行:运行的应用程序仍然运行缓慢,但无法启动新应用程序,Finder停止工作,系统必须重新启动。
所以我正在寻找一种方法来控制WKWebViews启动的进程数。
根据Apple文档,这是由WKWebView的processPool属性管理的,因为它们声明:“与Web视图关联的进程池由其Web视图配置指定。每个Web视图都有自己的Web Content进程,直到实现 - 达到了已定义的进程限制;之后,具有相同进程池的Web视图最终共享Web内容进程。“ (来自页面:https://developer.apple.com/documentation/webkit/wkprocesspool?language=objc)。
我无法弄清楚如何定义“实现定义的进程限制”。当我NSLog描述WKWebView的配置时,我得到了这个:
WKWebView配置说明:
>; preferences =>
我可以看到有一个processPool和它的配置(称为_WKProcessPoolConfiguration),以及一个名为maximumProcessCount的值,它被设置为0.我假设0意味着进程计数是无限的,我想将它设置为合理的数量。但我无法弄清楚如何设置这个值! processPool本身没有属性,因此我不知道如何访问此maximumProcessCount值。
任何帮助是极大的赞赏。