Apple浏览器Safari所使用的引擎Webkit,其JavaScriptCore采用了一种新的字节码(Bytecode)格式,旧的字节码格式是针对解释器吞吐量的内存使用优化,而新格式的目的则是要提升内存使用效率,并允许将字节码缓存在磁盘上。
在含有大量JavaScript程序代码的网站,像是网络论坛Reddit或是脸书,旧格式字节码占整个网站的内存使用量约为20%,而新的字节码则能减少使用大约一半的内存,少消耗约10%的内存用量。官方特别比较Reddit、Apple官网、脸书和Gmail四个网站,使用新旧格式的字节码所占的内存用量,说明内存用来减少情形。
以节省比例最多的Apple官网来说,字节码内存使用量从5.6MB下降到了2.71MB,减少52%的内存使用,另外,复杂的Gmail使用旧格式,字节码就会占用109.12MB内存,而使用新格式则仅需要65.96MB,虽然只有减少了40%,但是实际上内存却省上43.16MB,原本字节码使用越多内存的网站,应用新格式后,便能节省越多的内存。
在性能方面,间接线程会增加解释器分派的成本,但是由于考虑JavaScriptCore中字节码指令平均的复杂性,官方认为,这些添加的成本并不会对性能产生重大的影响。而由于更改字节码格式需要对整个引擎调整,因此官方也顺便改进了字节码相关的基础架构,进一步提高程序代码的类型安全、可读性以及可维护性,因此整体来说,采用新的字节码格式带来的好处很大。