论文目录 | |
摘要 | 第1-6页 |
ABSTRACT | 第6-10页 |
第一章 绪论 | 第10-16页 |
1.1 研究背景与意义 | 第10-11页 |
1.1.1 研究背景 | 第10页 |
1.1.2 研究意义 | 第10-11页 |
1.2 国内外研究现状 | 第11-14页 |
1.2.1 Node.js发展现状 | 第11页 |
1.2.2 Node-Webkit发展现状 | 第11-12页 |
1.2.3 JavaScript语言发展现状 | 第12-13页 |
1.2.4 JavaScript引擎即时编译发展现状 | 第13-14页 |
1.3 本文的研究目标和研究内容 | 第14页 |
1.4 论文的主要内容及章节安排 | 第14-16页 |
第二章 主流JavaScript引擎技术与源码保护技术 | 第16-24页 |
2.1 主流JavaScript引擎技术 | 第16-19页 |
2.1.1 V8引擎 | 第16-18页 |
2.1.2 Chakra引擎 | 第18-19页 |
2.1.3 SpiderMonkey引擎 | 第19页 |
2.2 主流JavaScript源码保护技术及工具 | 第19-23页 |
2.2.1 压缩JavaScript源码 | 第20-21页 |
2.2.2 混淆JavaScript源码 | 第21-22页 |
2.2.3 加密JavaScript源码 | 第22-23页 |
2.3 本章小结 | 第23-24页 |
第三章 JavaScript本地化方案的提出 | 第24-36页 |
3.1 Node-Webkit开发APP特点和存在的问题研究 | 第24-28页 |
3.1.1 Web APP与Node-Webkit桌面APP对比研究 | 第24-26页 |
3.1.2 Node-Webkit开发APP优点 | 第26-27页 |
3.1.3 Node-Webkit存在的问题 | 第27-28页 |
3.2 V8系统结构和运行机制研究 | 第28-34页 |
3.2.1 V8整体流程研究 | 第28-29页 |
3.2.2 V8内存管理研究 | 第29-33页 |
3.2.2.1 堆内存对象的表示 | 第29-31页 |
3.2.2.2 垃圾回收机制 | 第31-33页 |
3.2.3 V8两层编译器架构研究 | 第33-34页 |
3.3 JavaScript本地化方案的提出 | 第34-35页 |
3.4 本章小结 | 第35-36页 |
第四章 JavaScript工具mkCustomerSnapshot设计与实现 | 第36-49页 |
4.1 定制V8初始snapshot方案设计 | 第36页 |
4.2 在V8中产生定制snapshot设计 | 第36-38页 |
4.3 定制snapshot隐藏源码方案设计 | 第38-41页 |
4.3.1 确保自定义JavaScript均被编译生成机器码 | 第39-40页 |
4.3.2 去除堆内存中JavaScript源码 | 第40页 |
4.3.3 跳过Crankshaft优化 | 第40-41页 |
4.4 定制snapshot加入Node-Webkit应用实现 | 第41-47页 |
4.4.1 mkCustomerSnapshot程序实现 | 第41-43页 |
4.4.2 Node-Webkit API snapshot实现 | 第43-47页 |
4.5 定制snapshot适应情况分析 | 第47页 |
4.6 本章小结 | 第47-49页 |
第五章 JavaScript工具mkCacheCode设计与实现 | 第49-64页 |
5.1 缓存V8机器码(CacheCode)方案设计 | 第49-50页 |
5.2 序列化和反序列化SharedFunctionInfo设计 | 第50-56页 |
5.2.1 CacheCodeSerialier类设计 | 第53-54页 |
5.2.2 CacheCodeDeserialier类设计 | 第54-55页 |
5.2.3 SerializedCacheCode类设计 | 第55-56页 |
5.3 缓存机器码隐藏源码方案设计 | 第56-57页 |
5.4 V8基本编译器缓存机器码接口设计 | 第57-59页 |
5.4.1 Compiler::CompileScript接口设计 | 第57-59页 |
5.4.2 ScriptCompiler::CompileCacheCode接口设计 | 第59页 |
5.5 CacheCode加入Node-Webkit应用实现 | 第59-63页 |
5.5.1 mkCacheCode程序实现 | 第60-61页 |
5.5.2 Node-Webkit API evalCacheCode实现 | 第61-63页 |
5.6 CacheCode适应情况分析 | 第63页 |
5.7 本章小结 | 第63-64页 |
第六章 实验测试与分析 | 第64-74页 |
6.1 测试环境 | 第64页 |
6.2 测试用例与测试指标设计 | 第64-65页 |
6.3 mkCustomerSnapshot工具测试结果 | 第65-66页 |
6.4 mkCustomerSnapshot工具保护源码方案测试结果 | 第66-68页 |
6.5 mkCacheCode工具测试结果 | 第68-71页 |
6.6 mkCacheCode工具保护源码方案测试结果 | 第71-73页 |
6.7 本章小结 | 第73-74页 |
第七章 全文总结与展望 | 第74-76页 |
7.1 全文总结 | 第74页 |
7.2 后续工作展望 | 第74-76页 |
致谢 | 第76-77页 |
参考文献 | 第77-79页 |