装载效率测试
测试页面见:test/load-eff-test.html
为了测试结果更显客观,我选择了第三方类库的装载测试:
'com.yahoo.yui.*',
'net.conio.prototype.*',
'net.fckeditor.*',
'org.jquery.*',
'us.aculo.script.*'
共22个脚本文件(对于JSI来说还有诺干包定义文件)。
FF2:
标记导入时间(原始方式):469,469,1047,484,484,437,469,484
同步导入时间:469,453,484,437,469,453
延迟导入时间:921,765,891,906,953,906,922
异步导入时间:859,1093,1141,1031,1641,1125,1078,1093,1157,1141
IE7:
标记导入时间:343,297,297,344,328,328
同步导入时间:281,250,235,235,234,234,250,265
延迟导入时间:922,422,406,391,391,391,407,391
异步导入时间:625,672,672,703,703,672,703,704,688
运行时间测试
测试脚本管理后对新能的影响,影响因素有:全局变量和局部变量的查找时间差异,eval的脚本和script标记直接插入的脚本的可能差异。(这个测试不具有普遍性,这里我主要是测试了一下浏览器对局部变量的访问速度【JSI里面访问变量都是装载单元内的局部变量】,所以故意测试了大量局部变量访问的操作)
测试页面见:test/runtime-eff-test.html
FF2:
jsiTime: 845, 927, 598, 687, 764,
scriptTime: 1432, 950, 1305, 1278, 1219,
evalTime: 1644, 1373, 1322, 1186, 1360,
execTime: 0
dscriptTime: 1432, 950, 1305, 1278, 1219,
IE7:
jsiTime: 295, 205, 157, 315, 156, 142, 375, 328, 172, 172,
scriptTime: 172, 172, 189, 140, 251, 187, 217, 203, 172, 234,
evalTime: 236, 249, 139, 172, 281, 171, 172, 108, 436, 359,
execTime: 219, 234, 314, 157, 220, 266, 204, 234, 187, 95,
dscriptTime: 187, 265, 294, 326, 187, 328, 141, 221, 127, 249,
上面的基数太小,随机误差太大,调整原始数据从新测试一遍jsiTime和scriptTime
jsiTime: 576, 658, 688, 703, 611, 608,
scriptTime: 706, 608, 562, 547, 655, 657,
总结:
JSI的装载性能表现不错,完全不必计较。
托管代码的运行性能也没有太大区别,不过,因为。JSI托管脚本使用的变量基本都是装载单元内的局部变量(本地声明变量,或者外部依赖的引用或值拷贝),所以,对于FF这类局部变量比全局变量访问速度快不少的解释引擎,JSI托管脚本可以达到更好的运行效率。
有个奇怪的问题,JSI在装载类库时,与传统模式相比,肯定增加了些额外的运算,但是,貌似JSI的同步装载模式下,装载脚本的耗时比传统模式还少(IE 表现明显)?为何?
欢迎大家对这奇怪的现象提出自己的猜想,我稍后贴出我对此问题的看法^_^
分享到:
相关推荐
根据提供的信息,我们可以了解到这份文档是关于海尔液晶电视电源板(型号:0094001224B JSI-190419-050 JSI-220409-050)的原理图。这份原理图详细地展示了电源板的内部电路结构、元件布局及其连接方式等关键信息。...
- **高效渲染**: ArkUI ACE Engine Lite作为框架的引擎,实现了高效的UI渲染机制,优化了性能,使得界面响应迅速。 - **组件化开发**: 提供丰富的UI组件库,包括按钮、文本、图片等,开发者可以通过组合这些组件...
绝缘电阻测试测量产品的电气绝缘性能,漏电流测试则检测交流和直流电源到地的漏电流是否超出标准。接地保护测试确保可接触金属部件的正确接地。 耐压测试(或高压测试,如HIPOT测试)是一种非破坏性的测试,用于...
在HDT-JSI01-master这个压缩包中,很可能是项目的源代码,包含了项目的结构、脚本文件、样式表、测试文件等。通过阅读和分析这些文件,你可以深入理解项目的工作原理,学习如何组织代码、如何实现特定功能,以及如何...
5. **测试和示例**:源码包中可能包含单元测试和示例应用,用于验证索引功能并展示如何在实际项目中使用JSI。 6. **文档**:JSI-master可能包含README文件或其他形式的文档,解释了如何编译、安装和使用JSI库。 ...
React本机性能测试 好资源 需要检查的图书馆 0.63 RN 0.63,Android 设备 Pixel 3a:WatermelonDB 10,000 条记录,无 JSI,Hermes 关闭:579 毫秒 RN 0.63,Android 设备 Pixel 3a:WatermelonDB 10,000 条记录...
这份文档的完整性和准确性对于JSI网站的建设至关重要,因为它为整个项目提供了基础,决定了软件的设计、开发和测试的方向。只有在需求分析阶段充分理解和记录下所有的需求,才能确保后续开发阶段的工作能够顺利进行...
《JSI网站建设软件需求说明书》是一份详细阐述软件开发需求的重要文档,它是软件工程过程中的基石,用于确保开发团队和利益相关者对项目目标、功能和性能达成共识。以下是该文档涉及的关键知识点: 1. **文档变更...
2. **index.js**:入口文件,通常是你应用的起点,包含React Native应用的初始化逻辑。 3. **App.js**或类似命名的文件:主应用组件,包含你的应用的布局和逻辑。 4. **components**目录:可能包含自定义的React组件...
描述中提到,这个压缩包内包含了一个已经开发和测试完成的JS中文转拼音插件,文件包括"pyClass.js"和"zhuanPY.js",可能是一个完整的库或模块,用于实现中文到拼音的转换功能。"说明.txt"文件应该包含了使用该插件的...
在撰写需求分析文档时,应确保需求的明确性、完整性和一致性,以便于后续的设计、编码和测试阶段。此外,需求文档还需要具备一定的灵活性,以适应项目需求的变化。在实际操作中,需求分析师需要与项目干系人充分沟通...
9. **性能测试和基准**:为了确保其性能,库可能包括一些示例和基准测试,以展示在不同数据集和查询类型下的性能表现。 10. **文档和示例**:良好的开源项目会附带详细的文档和示例代码,帮助开发者理解和使用库。 ...
##### 2. 异步按需装载(无阻塞) - **定义**:通过异步方式加载脚本文件,不会阻塞浏览器的其他操作。这种方式需要在脚本加载完成后执行回调函数。 - **优点**: - 用户体验良好。 - 不会影响浏览器的其他操作。...
2. **JavaScript Interface (JSI)**:React Native通过JSI与原生平台交互,使得JavaScript代码能够调用原生模块,如访问设备硬件、网络通信等。 3. **Native Modules**:开发者可以使用Objective-C(iOS)或Java/...
在安全性方面,推荐使用TBCompressor(YUI Compressor),因为它基于文本的压缩方式相对安全,而且在JSI 1.1 a8及集成的第三方类库测试中未发现异常。另外,知名的jQuery框架也使用了类似的压缩算法,这进一步证明了...
Myo 肱骨肌电图传感器臂带通过检测肌肉电信号,能识别手势和肢体动作,从而实现与智能设备的交互。这款应用程序旨在提供一种新颖、有趣的方式来体验 Myo 的功能。 在 MyoToy 中,你可以发现一系列基于 JavaScript ...
8. **调试与测试**:使用`react-native run-android`或`react-native run-ios`命令启动应用,进行真机或模拟器测试,确保导航功能正常。 总的来说,`react-native-navigation-hybrid`为React Native应用提供了高效...