AdGuard v4.5.8 iOS版:过滤器更新速度提升至 30 倍
我们很高兴在 2025 年即将到来之际为大家带来一些好消息。v4.5.8 更新让应用速度提升至 30 倍。没错,我们对 Safari 转换器进行了优化。现在 AdGuard 的过滤规则转换为 Safari 规则的速度从之前的 10–30 秒缩短到了 0.5–2 秒。用户会特别在更新、启用或禁用过滤器以及开启保护时感受到这一变化。
同时,我们发现并向 Apple 报告了一个问题,如果未来能修复,这个过程将会变得更快。
让我们来了解一下整个过程的运作方式。
过滤器更新的工作原理
1. 下载过滤器新版本
一切从下载新版本的过滤器开始。这部分运行非常顺畅,没有任何问题。
2. 转换规则
接下来,我们要将 AdGuard 过滤器中的规则转换为 Safari 的规则。在这里,我们对 Safari 转换器应用了最好的优化技术,使这个过程速度提升至 30 倍。
以下是实际操作中的对比:
优化前:
优化后:
3. 将规则加载到 Safari
最后一步却没那么理想,因为我们遇到了 Apple 系统中的一个问题。
要让 Safari 能够应用过滤规则,这些规则需要被编译成 DFA,这由一个名为 com.apple.Safari.ContentBlockerLoader
的后台进程完成。AdGuard 将新规则加载到 Safari 中,调用 reloadContentBlocker 函数,然后等待结果。在此期间,用户会在应用中看到「内容拦截器更新中...」的状态。
问题在于,由于某种原因,这个加载器进程在 iOS 和 iPadOS 上的性能受到限制,以至于编译一个相对较小的内容拦截器(约 28,000 个规则)可能需要 6–15 秒(而在 macOS 上仅需几毫秒)。对于更大的内容拦截器,整个过程甚至可能超过 30 秒。
显然,这对用户体验来说并不友好。更重要的是,这种限制影响过滤器更新的频率和速度,而及时的过滤器更新对于修复问题和广告拦截器的性能至关重要。
目前,我们已将此问题报告给 Apple。在 Apple 的反馈助手中,此问题的工单 ID 为:FB16130983。我们希望 Apple 能在 2025 年解决这个问题。
以上就是此次更新的主要内容。立即更新应用程序,亲身体验所有改进。同时,欢迎通过我们的社交媒体或 GitHub 的 Issues 部分与我们分享反馈意见。祝大家节日愉快,无论在线还是离线都保持安全 💚