1

我的 Cocoa 应用需要同时渲染多批生成的网页。由于 WebKit WebView 渲染仅限于主线程,我不能在应用程序的进程中使用 GCD 来执行此操作,因此我正在考虑使用某种进程间解决方案。

NSXPCConnection是显而易见的选择,因为它与沙箱配合得很好,并且透明地代理了我需要使用的所有核心基础类型。但是,它似乎只为每个服务创建一个进程,这只是将我的主线程限制移动到另一个进程中,并且不允许我并行化多个渲染请求。有没有办法说服 XPC 系统为同一个服务分叉多个进程,可能使用 C API(xpc_connection_create等)?

在这一点上,我正在考虑制作一打XPCServices具有不同名称的相同捆绑包,并连接到对于特定批次的并行渲染请求空闲的捆绑包,但这似乎很愚蠢。

4

1 回答 1

0

FWIW,我向 Apple 提出了一个技术支持问题,他们回答说“鉴于当前发布的系统配置,没有支持的方式来实现所需的功能”,所以我猜它无法完成。

我最终创建了 20 个相同的 XPC 服务并启动了[[NSProcessInfo processInfo] processorCount]实例,并手动管理与它们的通信。它实际上工作得很好,我能够最大限度地利用渲染任务的所有处理器。

于 2013-12-18T19:10:01.363 回答