交互式中间表示(IR)查看器在实时环境中在客户端侧代码的即时编译期间显示客户端侧代码的中间表示的视图。该交互式IR查看器允许开发者请求在对客户端侧代码的JIT编译的一个或多个阶段期间生成的中间表示。可在可执行代码被生成之前对该中间表示进行修改。在实时环境期间对中间表示的分析向开发者提供了关于可执行代码正被如何编译的洞察,使得改进可被作出以便改进客户端侧代码的性能。
【技术实现步骤摘要】
【国外来华专利技术】背景web浏览器是一种将通过网络获得的信息资源格式化并呈现在显示设备上的应用。信息资源可以是包括各种类型的代码和内容(诸如客户端侧代码、HTML标签、层叠样式表(CSS)、HTTP头部等等)的网页或文档。客户端侧代码被嵌入信息资源并在客户端机器上被执行。通常,客户端侧代码被实现为以动态编程语言编写并在运行时被解释的脚本。客户端侧代码的一些部分可被即时(JIT)编译成机器或可执行代码,以便增加客户端侧代码的执行速度。客户端侧代码的JIT编译可执行旨在提高可执行代码的效率的优化。然而,JIT编译可能不产生在客户端侧代码或JIT编译器的开发期间通常难以被检测出的高效的可执行代码。概述提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。交互式中间表示(IR)查看器与用户或开发者进行交互以便在实时环境中执行的同时显示在客户端侧代码的JIT编译期间生成的客户端侧代码的中间表示。交互式IR查看器允许开发者请求在JIT编译的一个或多个阶段期间生成的中间表示。开发者可修改IR,然后IR被编译并执行。经修改的IR的执行允许开发者在实时环境期间分析客户端侧代码和/或JIT编译器的性能。此分析为开发者提供了对改善客户端侧代码和/或JIT编译器有用的洞察。从阅读以下详细描述及查看相关附图后,这些及其他特征和优点将显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。附图简述图1示出了交互式IR查看器的示例性系统。图2是示出图1所示的web浏览器和交互式IR查看器的示例性组件的框图。图3是示出交互式IR查看器的第一示例性方法的流程图。图4是示出交互式IR查看器的第二示例性方法的流程图。图5是示出呈现出的网页的框图,伴随着客户端侧代码的示例性源代码清单以及客户端侧代码的某一片段的对应中间表示。图6是一种示例性操作环境的框图。详细描述本文描述的技术涉及在实时环境中客户端侧代码的即时编译期间获得并显示客户端侧代码的中间表示的视图的交互式中间表示(IR)查看器。客户端侧代码是从服务器发送到客户端机器中的web浏览器供在客户端机器上执行的代码。因为该代码在客户端机器上执行,所以它被称作“客户端侧代码”。客户端侧代码通常被实现为嵌入网页并在运行时在客户端机器上被解析、解释和/或编译的脚本。客户端侧代码可以以动态编程语言或脚本编程语言(在本文中统称为动态编程语言)编写。动态编程语言在运行时执行静态编程语言在编译期间执行的某些行为。例如,动态编程语言在运行时执行动态类型化、代码扩展以及惰性解释。动态编程语言的示例包括但不限于JavaScript、VBScript、AJAX、Python以及Perl。在运行时期间,以动态编程语言编写的脚本基于用户输入具有不同且变化的内容。以这样的动态编程语言表示的对象可具有变化的类型,对象可在形状上改变(例如,可具有动态添加的属性),表达式值可改变,和/或其他代码因子可在运行时期间动态地改变。由此,以动态编程语言编写的脚本通常被解释却不被编译,这是因为在编译时间之前可能不完整知晓脚本内容。这导致脚本被低效地执行,这是因为经解释的代码比由编译生成的机器代码执行得更慢。在一些情况下,脚本的一些部分可被即时编译,从而得到脚本该部分的可执行机器代码。然而,将脚本代码编译为机器代码在其执行之前消耗了高启动成本。为了减少此计算负担,关于在脚本中发生的模式的简档数据被收集。模式可包括相对频繁地被执行的代码。一旦关于脚本的足够量的简档数据被积累,则简档数据可被编译器使用来生成为更快执行而优化的更高效的机器代码。简档数据可被保存在持久存储中,并在脚本随后执行期间被访问。中间表示是客户端侧代码的语言无关的表示。可对客户端侧代码的中间表示执行编译器优化。中间表示可以以不同的形式体现,诸如但不限于:树表示(例如,抽象句法树、解析树、具体句法树)、有向无环图、字节码等等。实时环境指的是客户端侧代码的当前执行。实时环境可发生在web浏览器、集成开发环境(IDE)、或任何类型的web应用中客户端侧代码的执行期间。在实时环境中对IR的分析为开发者提供了关于JIT编译器正在如何优化客户端侧代码并将客户端侧代码转换为可执行代码的有价值的洞察。在实时环境期间对IR进行的修改被编译并被转换为在实时环境中随后被执行的可执行代码。这允许开发者分析修改的结果。注意力现在转向对交互式IR查看器的示例性系统的讨论。图1示出了交互式IR查看器的示例性系统的框图。系统100可包括通过通信框架106通信地耦合的服务器102和计算设备104。虽然图1中所示的系统100具有按照某种拓扑结构的有限数量的元素,但可以理解,系统100可根据给定实现的需要而包括采用替代拓扑结构的更多或更少的元素。计算设备104和服务器106可以是能够执行可编程指令的任何类型的电子设备,诸如但不限于:移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手持式计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、小型机、大型机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统或其组合。通信框架106可以是能够利用任何通信协议或按照任何配置来促进计算设备104与服务器102之间的通信的任何类型的通信链接,诸如但不限于:有线网络、无线网络或其组合。在一个或多个实施例中,通信框架106可被实现为因特网。计算设备104可包括通过通信框架106从服务器102检索的文档108、web浏览器110和显示设备112。web浏览器110一种程序,该程序利用诸如统一资源定位符(URL)之类的网络地址来检索文档108,格式化文档108的信息,以及在显示设备112上呈现经格式化的文档114。web浏览器110的示例包括但不限于InternetMozillaChrome等等。文档108可以是诸如网页之类的包括标记语言116的代码的web文档,标记语言诸如超文本标记语言(HTML)、动态HTML(DHTML)、可扩展HTML(XHTML)、可扩展标记语言(XML)等。文档108可包括文档对象模型(DOM)对象118和一个或多个脚本120。DOM对象118包括根据DOM约定在文档中表示的一个或多个对象,DOM约定是用于表示对象并与对象进行交互的跨平台且语言无关的约定。DOM对象118可包括被直接包括于文档108中或由文档108引用的对象。脚本120可包括允许对DOM对象118作出改变的以动态编程语言编写的代码。交互式IR查看器122可以是作为web浏览器110的插件提供的web浏览器110的添加组件。替换地,交互式IR查看器122可以是一组插件或内置工具(称为F12开发者工具)的一部分。这些工具是被添加到web浏览器110并被用于调试和/或分析web浏览器110对文档的执行的软件组件。通过激活键盘上的F12键来启动这些工具。在其他实施例中,交互式IR查看器122可以是web浏览器110的一部分。实施例不限于交互式IR查看器122的特定配置。交互式IR查看器122可以是计算机程序指令序列,该序列在被处理器本文档来自技高网...
【技术保护点】
一种在至少具有一个处理器的计算设备上实现的方法,所述方法包括:执行客户端侧代码,所述客户端侧代码以动态编程语言编写;在所述客户端侧代码的执行期间,生成所述客户端侧代码的中间表示和简档数据;以及显示对应于所述客户端侧代码的用户所选部分的中间表示,所显示的中间表示基于在所述客户端侧代码的执行期间生成的中间表示和所述简档数据。
【技术特征摘要】
【国外来华专利技术】2014.05.15 US 14/279,2551.一种在至少具有一个处理器的计算设备上实现的方法,所述方法包括:执行客户端侧代码,所述客户端侧代码以动态编程语言编写;在所述客户端侧代码的执行期间,生成所述客户端侧代码的中间表示和简档数据;以及显示对应于所述客户端侧代码的用户所选部分的中间表示,所显示的中间表示基于在所述客户端侧代码的执行期间生成的中间表示和所述简档数据。2.如权利要求1所述的方法,其特征在于,所述客户端侧代码在web浏览器中被执行。3.如权利要求1所述的方法,其特征在于,进一步包括:修改所显示的中间表示;以及使用经修改的中间表示来生成可执行代码。4.如权利要求1所述的方法,其特征在于,进一步包括:请求与所述客户端侧代码的编译的一选择阶段相关联的中间表示。5.如权利要求1所述的方法,其特征在于,进一步包括:请求与所述中间表示的一选择优化相关联的中间表示。6.一种系统,包括以下处理器可执...
【专利技术属性】
技术研发人员:C·曼,D·C·伊利耶夫,B·G·阿比集思沙特拉,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。