一种采用虚拟机显示脚本文件的方法及装置制造方法及图纸

技术编号:9618410 阅读:129 留言:0更新日期:2014-01-30 06:16
一种采用虚拟机显示脚本文件的方法及装置。其中显示方法包括:接收到客户端发送的包括目标位置的网页生成请求;根据所述目标位置获取保存的脚本文件;检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页。本发明专利技术在确定脚本文件后,对检索到的编译文件直接进行解析执行,从而得到用于在所述客户端显示网页的显示文件。由于编译文件是预先保存的,因此对于相同的脚本文件,无需重复多次的进行编译,从而减少了资源消耗,提供系统CPU的使用率,减少系统负载。

Method and device for displaying script file by using virtual machine

Method and device for displaying script file by using virtual machine. The display method includes: receiving the client sends the request including web page generation target position; according to save the script file to the target position; the latest version of retrieval of the script file to be compiled in the compiled file, if the retrieval to the compiled file, using the virtual machine analysis to execute the compiled file get file the script file, and display the file to the client returns the file, the display is used to display web pages in the client. After determining the script file, the invention directly parses the retrieved compiled file, thereby obtaining a display file for displaying the web page on the client. Since the compiled files are pre stored, there is no duplication of compilation for the same script files, thus reducing resource consumption, providing system CPU utilization, and reducing system load.

【技术实现步骤摘要】
一种采用虚拟机显示脚本文件的方法及装置
本专利技术涉及显示脚本文件相关
,特别是一种采用虚拟机显示脚本文件的方法及装置。
技术介绍
脚本文件,即动态网页文件,例如php脚本文件,使用服务器端php脚本解释器,分析、解释,计算php脚本文件,生成HTML格式的内容,响应给客户端浏览器。由于需要结合服务器上的数据,因此现有的脚本文件显示方法,一般需要先编译脚本文件,执行类型推演及优化,然后解析执行编译文件,得到计算结果,通常为HTML格式。客户端获取该计算结果并显示。该方法一般应用在服务器上,由于服务器的功能较为强大,CPU资源较多,因此,服务器基本能支持编译及解析功能。然而,当把现有技术的采用虚拟机分析、解析脚本文件时,在用户量很大时,CPU消耗较高。例如php的官方虚拟机在分析、计算php脚本时,CPU消耗较高。仍然采用现有技术的脚本文件显示方法,容易导致系统资源不足,服务器的虚拟机出现不能提供服务等问题。
技术实现思路
基于此,有必要针对现有技术在虚拟机上执行脚本文件显示时,CPU消耗较大的技术问题,提供一种采用虚拟机显示脚本文件的方法及装置。一种采用虚拟机显示脚本文件的方法,包括:接收到客户端发送的包括目标位置的网页生成请求;根据所述目标位置获取保存的脚本文件;检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页。一种采用虚拟机显示脚本文件的装置,包括:网页生成请求接收模块,用于接收到客户端发送的包括目标位置的网页生成请求;脚本文件获取模块,用于根据所述目标位置获取保存的脚本文件;编译文件获取解析模块,用于检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页。本专利技术在确定脚本文件后,对检索到的编译文件直接进行解析执行,从而得到用于在所述客户端显示网页的显示文件。由于编译文件是预先保存的,因此对于相同的脚本文件,无需重复多次的进行编译,从而减少了资源消耗,提供系统CPU的使用率,减少系统负载。附图说明图1为本专利技术一种采用虚拟机显示脚本文件的方法的工作流程图;图2为本专利技术一种采用虚拟机显示脚本文件的装置的结构模块图;图3所示为本专利技术的一个例子的系统结构图。具体实施方式下面结合附图和实施例对本专利技术做进一步详细的说明。如图1所示为本专利技术一种采用虚拟机显示脚本文件的方法的工作流程图,包括:步骤S101,接收到客户端发送的包括目标位置的网页生成请求;步骤S102,根据所述目标位置获取保存的脚本文件;步骤S103,检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页。其中,步骤S102中,脚本文件保存在磁盘或者数据库中。其中,步骤S103中,编译文件预先编译并保存,每次脚本文件经过更新,则成为新版本的脚本文件。在执行步骤S103中,仅对脚本文件的最新版本进行编译后的编译文件直接解析,如果保存的是对脚本文件的旧版本进行编译得到的编译文件,则说明脚本文件的最新版本并未进行编译,因此不能直接解析。本实施例由于采用了对脚本文件的最新版本进行编译后的编译文件直接解析,一个编译文件能一直使用直到脚本文件发生了变化,因此避免了对脚本文件进行多次编译,从而造成资源浪费。如果没有检索到所述编译文件,则可以不生成显示文件,直接退出流程。然而,在其中一个实施例中,还包括:如果没有检索到所述编译文件,则采用虚拟机的词法分析器和语法分析器分析并编译所述脚本文件的最新版本得到编译文件,保存所述编译文件,并解析执行所述编译文件,得到所述脚本文件的用于在所述客户端显示网页的显示文件,并向所述客户端返回所述显示文件。在没有保存编译文件的情况下,采用虚拟机的词法分析器和语法分析器分析并编译所述脚本文件的最新版本得到编译文件,同时保存新得到的编译文件,以在后续使用。在其中一个实施例中,将所述编译文件保存在缓存中。本实施例将编译文件保存在缓存中,则存取更为快捷。在其中一个实施例中,所述编译文件包括字节码。字节码即bytecode。在其中一个实施例中,采用虚拟机的中间字节码解析器解析执行所述字节码,得到所述脚本文件的静态文件作为所述显示文件。在其中一个实施例中,采用虚拟机的即时编译器解析执行所述字节码,将所述字节码翻译成机器码,将所述机器码作为所述显示文件。本实施例采用即时编译器将编译文件里的字节码翻译成机器码,去掉解释字节码的过程,大大提高计算速度,能进一步的提高性能。根据各个不同的项目特别是php代码的功能,本实施例可以提升50%-30%的性能,通常的平均性能提升在100%。如图2所示为本专利技术一种采用虚拟机显示脚本文件的装置的结构模块图,包括:网页生成请求接收模块201,用于接收到客户端发送的包括目标位置的网页生成请求;脚本文件获取模块202,用于根据所述目标位置获取保存的脚本文件;编译文件获取解析模块203,用于检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页。在其中一个实施例中,还包括:编译文件生成解析模块,用于如果没有检索到所述编译文件,则采用虚拟机的词法分析器和语法分析器分析并编译所述脚本文件的最新版本得到编译文件,保存所述编译文件,并解析执行所述编译文件,得到所述脚本文件的用于在所述客户端显示网页的显示文件,并向所述客户端返回所述显示文件。在其中一个实施例中,将所述编译文件保存在缓存中。在其中一个实施例中,所述编译文件包括字节码。在其中一个实施例中,采用虚拟机的中间字节码解析器解析执行所述字节码,得到所述脚本文件的静态文件作为所述显示文件。在其中一个实施例中,采用虚拟机的即时编译器解析执行所述字节码,将所述字节码翻译成机器码,将所述机器码作为所述显示文件。如图3所示为本专利技术的一个例子的系统结构图,包括:客户端浏览器31和虚拟机的服务器32。其中,服务器32包括:实现HttpWebServer功能的web服务器组件321,采用libevent实现;字节码缓存322(CodeCache),为SQLitedatabase(SQLitedatabase为常用一种数据库)的缓存,用于缓存中间字节码,减少词法,语法分析次数。服务器32上的虚拟机323采用HipHopVM(HHVM)。虚拟机323上包括:分析引擎3231,包括词法分析器(LexicalAnalysor)和语法分析器(SemanticAnalysor),用于分析php源代码,生成字节码。使用Linux系统的Flex和Bison实现。中间字节码解释器3232(Interpreter),用于解释执行字节码,返回运算结果。即时编译器3233(JustInTimecompilation,JI本文档来自技高网...
一种采用虚拟机显示脚本文件的方法及装置

【技术保护点】
一种采用虚拟机显示脚本文件的方法,其特征在于,包括:接收到客户端发送的包括目标位置的网页生成请求;根据所述目标位置获取保存的脚本文件;检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页。

【技术特征摘要】
1.一种采用虚拟机显示脚本文件的方法,其特征在于,包括:接收到客户端发送的包括目标位置的网页生成请求;根据所述目标位置获取保存的脚本文件;检索所述脚本文件的最新版本进行编译后的编译文件,如果检索到所述编译文件,则采用虚拟机解析执行所述编译文件,得到所述脚本文件的显示文件,并向所述客户端返回所述显示文件,所述显示文件用于在所述客户端显示网页;所述虚拟机位于服务器端。2.根据权利要求1所述的采用虚拟机显示脚本文件的方法,其特征在于,还包括:如果没有检索到所述编译文件,则采用虚拟机的词法分析器和语法分析器分析并编译所述脚本文件的最新版本得到编译文件,保存所述编译文件,并解析执行所述编译文件,得到所述脚本文件的用于在所述客户端显示网页的显示文件,并向所述客户端返回所述显示文件。3.根据权利要求1所述的采用虚拟机显示脚本文件的方法,其特征在于,将所述编译文件保存在缓存中。4.根据权利要求1所述的采用虚拟机显示脚本文件的方法,其特征在于,所述编译文件包括字节码。5.根据权利要求4所述的采用虚拟机显示脚本文件的方法,其特征在于,采用虚拟机的中间字节码解析器解析执行所述字节码,得到所述脚本文件的静态文件作为所述显示文件。6.根据权利要求4所述的采用虚拟机显示脚本文件的方法,其特征在于,采用虚拟机的即时编译器解析执行所述字节码,将所述字节码翻译成机器码,将所述机器码作为所述显示文件。7.一种采用虚拟机显示脚本文件的装置,其特征在于,包括...

【专利技术属性】
技术研发人员:刘垒胡志广王宏
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1