之前在网上有看到说 Node.js 与 C++ 频繁交互会影响性能,但具体 overhead 多少不记得了,有时间可以去测试一下,或者有网友知道的话,欢迎留言告诉我。
对于 iOS 来说,JavaScriptCore (后称 JSCore )是 Apple 钦定的 JS 引擎,其实除了 JSCore,iOS 上也可以跑其他 JS 引擎,比如 ChakraCore 以及 Firefox 的 SpiderMonkey,理论上只要是支持解释器模式的JS引擎都有机会可以运行在 iOS 系统上。刚好最近 V8 也支持了解释器模式(JITless) ,今天正好来看看 V8 和 JavaScript Core 在 iOS 下的 binding 性能表现究竟孰优孰劣。我这边暂时只简单测试 C++ 和 JS 交互的性能。
源码会放到这仓库下 ios-javascript-interop-perf
JavaScriptCore binding 性能

实验所用机器为 iPhone XS Max,iOS 12.2 系统,当前仅测试了一个空调用,JavaScript 未进行任何逻辑运算。
y轴表示调用固定次数的平均耗时,单位是微妙,x轴代表调用次数。可以发现平均调用所用耗时为 0.599μs,实际上测量下来发现性能还是不错的,其他机器需要再进行测量看看。
V8 binding 性能
待测
之前在网上有看到说 Node.js 与 C++ 频繁交互会影响性能,但具体 overhead 多少不记得了,有时间可以去测试一下,或者有网友知道的话,欢迎留言告诉我。
对于 iOS 来说,JavaScriptCore (后称 JSCore )是 Apple 钦定的 JS 引擎,其实除了 JSCore,iOS 上也可以跑其他 JS 引擎,比如 ChakraCore 以及 Firefox 的 SpiderMonkey,理论上只要是支持解释器模式的JS引擎都有机会可以运行在 iOS 系统上。刚好最近 V8 也支持了解释器模式(JITless) ,今天正好来看看 V8 和 JavaScript Core 在 iOS 下的 binding 性能表现究竟孰优孰劣。我这边暂时只简单测试 C++ 和 JS 交互的性能。
源码会放到这仓库下 ios-javascript-interop-perf
JavaScriptCore binding 性能
实验所用机器为 iPhone XS Max,iOS 12.2 系统,当前仅测试了一个空调用,JavaScript 未进行任何逻辑运算。
y轴表示调用固定次数的平均耗时,单位是微妙,x轴代表调用次数。可以发现平均调用所用耗时为 0.599μs,实际上测量下来发现性能还是不错的,其他机器需要再进行测量看看。
V8 binding 性能
待测