首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何不改一行代码,让Hippy启动速度提升50%?

性能指标对比以下各项对比取至Linux上各引擎测试数据包加载耗时速度对比(越低越好)使用引擎执行业务JS代码,其中JSC和V8均是直接执行JS代码,QuickJS和Hermes是执行Bytecode。...图片QuickJS一骑绝尘,Hermes紧跟其后,JSC次之,V8最差;执行效率对比(越高越好)使用引擎跑一些开源的算法或者知名JS功能库。...,以QB首页Feed流(3.8M左右)举例,JSC和V8均输入原始js文件,QuickJS和Hermes输入JS编译后的Bytecode文件。...RuntimeHermes使用非常简单,提供了一个Runtime的抽象类,所有的js对象都执行在Runtime对象上,类似JSC的JSContext;派生了HermesRuntime子类来实现所有JS操作...JS引擎接口报的异常JSC引擎和V8处理逻辑不太一样,JSC的JSI接口会将Exception通过参数传递出来,V8是通过在调用上下文初始化TryCatch对象,对异常进行捕获;所以对于JSCJS异常

1.3K30

iOS引入JavaScriptCore引擎框架(二)

js端,由于只有暴露在全局的函数声明才能够让oc端访问,这就限制了js端的灵活性。...if(isiOS4JSC){ // 将注册的方法透出到window.jscObj的属性上 var ev = eval; $.JSBridge...._JSMethod = method; // 暴露函数至全局 // jsc只能执行全局函数声明方式定义的函数,不可以将函数指针复制给其他变量执行 ev('function toObjectCExec...尾声     我现在仍然相信,目前的iOS hybridAPP的主流通信方式仍然适corava的javascriptWebViewBridge,但是随着jsc引入到iOS7中,本文介绍的使用jsc(嵌入...js引擎的方式)来完成oc和js的通信将更为流行,尽管目前apple提供的针对jsc的开发接口文档几乎没有,但是我们通过webkit的源码做一些hack的方式也不是不可以,毕竟只要UIWebView仍然使用

1.5K40

判断js引擎是javascriptCore或者v8

5Bnative%20code%5D%20%7D') { document.write('V8 detected'); } else { document.write('JSC...方法通信,但是通过这个借口,虽然我们可以采用内置的jsc引擎执行js代码,但是无法进行更细粒度,深入到javascript运行时来执行代码,最直接的表现就是“无法在oc端对执行的js进行错误控制,如异常处理机制...执行js端的方法,获取js的参数(序列化的json字符串),在oc端进行反序列化,最后调用oc的函数;     2)oc端的stringByEvaluateJavascriptString在执行js代码时会阻塞...引擎并在js,oc两层搭建桥接层,并且每层持有2份相同的配置表,每个表中都记录js,oc透出的API,并结合iOS的事件机制完成oc和js的互调;第三种则仍是采用iOS7内置的javascriptCore...框架,不同于React Native的是使用jsc提供的通信机制,这套机制类似于android下WebView编码方式,oc端只需实现JSExpose协议,就将实现该协议的对象透到当前的上下文中,如在UIWebView

3.3K50
领券