- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Google Javascript脚本引擎v8 学习笔记
pansunyou@
2010.11.14于遵义
V0.1
目录
一、Google v8 整体印象 2
1.1 Google v8是什么,能做什么? 2
1.2 Google v8的获取及编译 2
1.2.1获取源码 2
1.2.2编译类库及示例 3
二、Google v8入门 3
2.1 v8的基本概念 3
2.2从HelloWorld开始 5
2.3 在C++中访问Javascript的变量及函数 5
2.4 在Javascript中访问C++全局函数及变量 9
2.5在C++中“声明”“Javascript类”, 供Javascript实例化 15
2.6封装完整的C++类到Javascript中,供Javascript实例化 16
三、Google v8的开源应用 16
3.1 Node.js 16
3.2 v8cgi 17
四、参考资料 17
五、本文源码 18
一、Google v8 整体印象
1.1 Google v8是什么,能做什么?
v8是一款Javascript脚本引擎,它开放源代码,由Google丹麦开发,是Google Chrome的一部分。
说得再具体直白一点,就是我们可以通过编写javascript脚本来操作C++提供的类,可以编写javascript函数供C++调用。像下面这样写javascript一定非常爽吧?
var?socket?=?new?Socket(Socket.PF_INET,?Socket.SOCK_STREAM,?Socket.IPPROTO_TCP);socket.setOption(Socket.SO_REUSEADDR,?true);var?conn?=?socket.connect(,?80);if?(conn){??var?httpHeader?=?GET /pansunyou? HTTP/1.1\r\nHost: \r\n\r\n;????socket.send(httpHeader);???var?responseText?=?socket.receive(12000);????printf(responseText=+responseText+\n\n);}socket.close();
至于其性能,好吧,算我迷信,Google出品一定差不到哪里去。再是我也未完全明白它的原理,就不抄网上的文字了,可以本文的参考资料看到相关的介绍文档。
1.2 Google v8的获取及编译
1.2.1获取源码
Google v8以源码的形式提供,其开源项目地址为:/p/v8/
在linux下,可以使用以下命令获取其源码:
svn checkout /svn/trunk/ v8
在windows下,可以TortoiseSVN导出源码:
1.2.2编译类库及示例
Google V8的编译需要使用Scons(大概类似于Makefile或者CMake之类),而Scons需要使用Python2.x,所以需要先安装这两玩意儿。 记得python一定要是2.x系列的,否则灰常灰常的郁闷。
/
/
Windows平台,进入命令后先运行,以初始化vc编译环境。
cmd /k C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat x86
进入v8源码目录,执行Scons --help可查看编译选项。因为我是用来学习的,所以我编译debug版本,并且选择打印尽可能多的消息。在windows下,尽量选择编译为动态库吧,在为静态的v8.lib有160MB之巨,一个helloworld程序都要链接个半天。
我的编译选项:
scons mode=debug verbose=on library=shared msvcrt=static
编译结果为同目录下的v8_g.lib和v8_g.dll,release编译时无_g后缀。使用时非常简单,只需要在vc工程中加入v8的include目录,链接加入v8_g.lib即可。
二、Google v8入门
2.1 v8的基本概念
在使用v8引擎之前,先来了解一下几个基本概念:句柄(handle),作用域(scope),上下文环境(可以简单地理解为运行环境)。
2.1.1句柄(Handle)
从实质上来说,每一个句柄就是一个指向v8对象的指针,所有的v8对象必须使用句柄来操作。这是先决条件,如果一个v8对象没有任何句柄与之相关联,那么这个对象很快就会被垃圾回收器给干掉(句柄跟对象的引用计数有很大关系)。
在v8.h中,我们可以看到几个相关的类(模板?):Handle、Local、Persistent,使用时大致为:
Han
您可能关注的文档
最近下载
- 小学作文审题技巧(整理).ppt
- AI技术在汽车保险行业的应用.pptx
- 掩模板光刻工艺研究-电子与通信工程专业论文.docx
- 托盘四向穿梭车式密集库设计规范.docx
- 伤害预防概述和策略答案-2024年全国疾控系统“大学习”活动.docx VIP
- Unit+8+section+B+reading说课课件2023-2024学年人教版英语八年级上册.pptx VIP
- 超星网课尔雅《国学智慧》超星尔雅答案2023章节测验答案.pdf
- AI智能在车险中的应用研究.pptx
- 酒店客房运营管理:客房异常情况处理与应急预案培训ppt课件.pptx
- 宜家 橱柜 FABRIKOR 法布利克 玻璃门柜 402.422.95 安装指南.pdf
文档评论(0)