为什么苹果使用微信小程序比安卓要流畅很多?
因为中国不属于欧盟,虽然听起来这个结论很奇怪
欧盟以外的地区,苹果不允许侧载和使用自己的webview
微信小程序的界面本质上是webview渲染的
安卓因为可以自由使用自己的webview(包括google play也只是不允许热更新,但可以使用自己的webview也允许jit,沟槽的facebook现在也用自己的webview了),微信用的是自己的xweb
但微信的xweb显然是一坨屎,和facebook自己搞的webview比起来性能和兼容性中间可能差了四五个阿里u4内核的水平
所以就成这b样了呗
等苹果哪天全球开放自定义webview了(但肯定不会允许第三方webview用jit),那就真的寄咯
国内这帮大厂有一个算一个都对safari落后的特性和糟糕的兼容性烦的要死,开放了保证一个个都给你塞没有jit的chromium进来
另一个原因就是安卓的小程序是跑在多进程multiprocess架构上的,每个小程序有自己的独立进程,而进程初始化所需的工作量是比较大的,尤其是application入口写的屎烂的情况下
而ios这边根本不存在多进程的概念,只有多线程,线程初始化可就快多了
但没有多进程毕竟制约了设计自由度,这方面还是安卓架构先进
当然有一说一,我还是希望safari webkit能争气一点的,不然全是chromium的天下就完了
至于firefox,你是说那个每年收谷歌一大笔钱的能踩住谷歌的刹车?儿子还能弑父了不成?
那么对于标准的系统浏览器来说呢,苹果单核虽然强,但javascriptcore是打不过v8的
v8这东西是纯纯的彻底放弃启动速度和轻量化,专注极端吞吐的,以至于启动速度太慢要靠预准备context每次直接从context快照热启动
javascriptcore正好反过来是极端注重启动速度,放弃了一部分有利于吞吐的设计
所以safari在跑分上干不过chromium,系统浏览器是安卓这边普遍更快的,代价则是v8的内存消耗也更大,尤其是chromium默认启用了很多以大量消耗内存为代价的安全隔离特性之后
当然,这俩至少是高手对招,隔壁spidermonkey连v8的一半都打不过,属于婴儿车级别,说实话我觉得你mozilla不如考虑一下用quickjs换掉spidermonkey得了,但mozilla疑似现在脑子已经锈(rust)完了