当前位置: 首页 > 专利查询>惠普公司专利>正文

在计算机程序正在运行时改进它们的性能制造技术

技术编号:2874803 阅读:235 留言:0更新日期:2012-04-11 18:40
本发明专利技术在各种实施方案中提供了用于改进程序性能的技术。在一种实施方案中,该程序以Java语言编写,并运行在包括具有一配置的Java虚拟机(JVM)的Java运行时环境(JRE)中。一个可访问该JVM的控制面板被调用。通过该控制面板,用户观察该Java程序的执行、分析执行的结果、改变JVM的配置并强制重新优化正在运行的程序的关键部分。通过重复上述观察该程序执行、分析结果、改变Java机的配置以及强制重新优化该程序的关键部分的步骤,该用户改进该程序的整体性能。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总地涉及计算机程序,尤其涉及在这样的程序运行时改进它们的性能。
技术介绍
起初可接受地运行的应用程序在执行了一段时间后,由于各种原因而变成差的执行者,上述原因包括程序的工作负荷特性的改变。例如在Java运行时环境(JRE)中,Java虚拟机(JVM)依靠动态优化的编译器来加速Java应用程序的执行。在应用程序运行时,JVM识别出调用最频繁的方法,即“热”方法,优化它们,并且把被优化的方法放入代码高速缓存中,从而会由于使用了这些方法的高速缓存版本而使得随后的对这些方法的调用能更有效。代码高速缓存是存储器中存储被优化的热方法代码的指定区域。一组热方法通常与特定类型的负荷或该程序执行的动作集相关联。运行两种不同负荷的程序提供两种不同的热方法集。例如,在为个人预备税时,税务程序与一组热方法相关联,这些方法不同于与为公司预备税的同一税务程序相关联的一组热方法,因为为个人预备税的方法与为公司预备税的方法不同。因此,在程序负荷发生改变时,通常会识别出热方法。由于额外的热方法被识别出并被优化,所以应用程序运行得更有效。但是,在应用程序运行了一段时间之后,热方法会达到一个稳态,即没有识别出新的热方法。应用程序性能就依赖于稳态方法被优化到多好。在Java环境运送到客户处时,通常会预置影响应用程序优化的等级和范围的阈值。积极(aggressive)的阈值和保守(conservative)的阈值都会导致性能差。例如,对于要在编译期间被直接插入的大量方法代码的积极的阈值会引起过多的指令高速缓存(I-高速缓存)未中,而保守的阈值则会留下较大部分未优化的代码。这两种情况都导致应用程序性能差。典型地,当用户认识到正在执行的应用程序性能差时,该用户会检查该应用程序,识别出JVM中影响应用程序性能的参数,并且给这些参数重新分配更合适的值。但是,为了使新改变有效,必须安装基于该修正的参数的新环境,并且这要求关掉现有的应用程序。在关掉该应用程序时,它不能被使用,这会导致事务中断。在各种情况中,为了纠正该问题,要求该用户与提供Java环境的企业机构合作。在这些情况中,该用户必须亲自到机构所在地,必须在那里重现该应用程序的软件和硬件环境以及导致性能差的状态,所有这些的代价是非常高的。在许多情况下,产生引起性能差的状态并不容易。另外,在应用程序被调试之后,新Java环境通常被修改,于是该用户必须在他的机器中安装包括这些修改的新Java环境。这也要求关掉该应用程序,而这将导致了中断,就像上面讨论的。基于上述的内容,希望提供机制来解决上面的不足之处以及有关问题。
技术实现思路
在各种实施方案中,本专利技术提供用于改进程序性能的技术。在一种实施方案中,以Java语言写该程序,并且在包括含一种配置的Java虚拟机(JVM)的Java运行时环境(JRE)中运行该程序。可访问该JVM的控制面板被调用。通过这个控制面板,用户观察Java程序的执行,分析执行结果,改变JVM的配置以及强制正在运行的程序的关键部分重新优化。通过重复上面观察该程序执行、分析结果、改变Java机的配置和强制该程序的关键部分重新优化的这些步骤,该用户能改进该程序的整体性能。附图说明本专利技术通过附图中的实例来说明,在附图中,同样的参考数字指出同样的元素,并且在附图中图1显示了可以在其上实施本专利技术的实施方案的系统;图2是说明用于根据一种实施方案来改进程序性能的方法的流程图;以及图3是可以实施本专利技术的实施方案的计算机系统。具体实施例方式在下列描述中,为了解释,众多特殊细节被陈述以提供对本专利技术的彻底理解。但是,显而易见的是本领域中的技术人员没有这些特殊细节也可以实践本专利技术。在其它实例中,众所周知的结构和设备都以框图的形式示出以避免遮蔽本专利技术。图1显示了本专利技术的实施方案可以在其上实施的系统100。系统100包括第一计算机110和第二计算机120,为说明而把它们分别称为应用程序服务器110和性能调试机120。服务器110和机器120通过通信链路130连接。服务器110运行各种应用程序,其中之一显示为程序1110。在一种实施方案中,程序1110是在包括Java虚拟机(JVM)1120的Java运行时环境(JRE)中工作的Java程序。典型地,程序1110在JVM 1120的控制下优化和执行。程序1110进而又通过网络(比如通信链路130、互联网等)正常地提供服务给用户。例如,这些服务包括万维网、数据库、电子邮件、安全、通信等。Java虚拟机1120提供一种用于执行与运行JVM 1120的计算机平台无关的Java字节码的环境。通常JVM 1120以运行在服务器110的硬件和操作系统上的软件来实施。因而,JVM 1120提供一种环境允许以将在服务器110上执行的字节码的形式来表示一般程序。JVM 1120负责优化该Java程序以及把Java字节码翻译成由服务器110执行的动作。JVM1120包括各种影响像程序1110这样的应用程序性能的参数。机器120包括控制面板1220能在其上显示的监视器或屏幕。在图1这个实例中,控制面板1220与服务器110离得很远,即控制面板1220通过通信链路130来与服务器110通信。但是,控制面板1220也可以是本地的,例如在服务器110本地的监视器上显示。在一种实施方案中,控制面板1220是从JVM 1120处调用的软件包,它允许用户访问并修改JVM 1120。另外,通过控制面板1220并以图像用户接口(GUI)的形式,与提供该Java环境的机构相关联的客户支持工程师远程分析并改进程序1110的性能。通信链路130是用于服务器110与机器120通信的机制。通信链路130可以是单个网络或者是利用一种通信协议或通信协议组合的网络组合,这些通信协议是诸如传输控制协议/互联网协议(TCP/IP)、公共交换电话网(PSTN)、数字用户线路(DSL)、电缆网、卫星兼容的、无线兼容的等。在一种实施方案中,通信链路130是互联网。Java虚拟机的配置Java虚拟机1120执行各种功能,并包括各种参数,这些功能和参数都影响程序1110的性能。例如,JVM 1120执行管理服务器110的存储器中数据的无用单元收集,以使得正在运行的Java程序不会用完存储器。管理存储器要花费时间和资源,因而会影响程序1110的性能。改变无用单元收集的频率会改变程序1110的性能。在一种实施方案中,JVM 1120包括指示无用单元收集应执行的频率的阈值以及指示执行无用单元收集的存储器块的优先级的机制。堆(heap)指的是无用单元收集的对象被放置的存储位置。在堆已满时,启动无用单元收集。较小的堆会引起更频繁地进行无用单元收集,并且因此可降低系统性能。JVM1120包括用于调整堆大小的参数。“热”Java程序方法被十分频繁地调用,并且以编译形式执行,而不是以解释形式执行,因为执行被编译的方法的速度比执行被解释的方法更快。在一种实施方案中,JVM 1120包括确定一种方法是否是热方法的阈值。例如,阈值5000指示只有至少被调用5000次后一个方法才被认为是热方法。同样,阈值10000指示只有至少被调用10000次后该方法才被认为是热方法等等。由于热方法在程序中被频繁调用,所以一组热方法可以被称为是该程序的本文档来自技高网
...

【技术保护点】
一种用于改进计算机程序(1110)的性能的方法,包括步骤:运行该程序(1110),并因此运行一个包括影响该程序(1110)性能的参数的虚拟机(1120);该参数具有一个值;调用可访问该程序执行、虚拟机(1120)和参数的控制面板;以 及通过该控制面板并且在该程序(1110)和虚拟机(1120)正在运行时,调整该参数的值为一个新值;执行带有含新值的参数的程序(1110);以及分析该执行步骤的结果,以及基于该分析步骤的结果而采取一个行动。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:N帕塔米安L莫里歇蒂A涅内A特里克
申请(专利权)人:惠普公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利