CN105786586A - 热点方法识别方法及装置 - Google Patents
热点方法识别方法及装置 Download PDFInfo
- Publication number
- CN105786586A CN105786586A CN201410812093.8A CN201410812093A CN105786586A CN 105786586 A CN105786586 A CN 105786586A CN 201410812093 A CN201410812093 A CN 201410812093A CN 105786586 A CN105786586 A CN 105786586A
- Authority
- CN
- China
- Prior art keywords
- compiled
- compiling queue
- queue
- described current
- current compiling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明实施例提供一种热点方法识别方法及装置,其中,所述热点方法识别方法包括:若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量;若所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;并将所述第一方法加入到所述当前编译队列。本发明实施例提供的热点方法识别方法及装置,能够避免对热点方法的过度识别,降低编译开销,提升虚拟机的性能,同时增强虚拟机的鲁棒性。
Description
技术领域
本发明实施例涉及虚拟机技术,尤其涉及一种热点方法识别方法及装置。
背景技术
虚拟机(VirtualMachine,简称VM)指通过软件(或者辅以少量硬件支持)的方法来虚拟出一台具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机,并且这台虚拟的计算机通常还支持一套自己的指令集,称为虚拟机指令集。虚拟机依托于本地的物理机,通过其执行引擎对给定的虚拟机指令序列(即目标程序)在本地机器上模拟执行。虚拟机的执行引擎一般包括解释器和编译器两种类型。解释器以一条虚拟机指令为单位进行取指令、译码和执行,解释器具有可移植性高、实现代价低和内存占用少等特点,因而大多数虚拟机的执行引擎都包含解释器,但是,解释器的单纯解释执行过程带来大量重复的取指令和译码操作,导致解释执行性能低下。鉴于此,虚拟机中引入了动态编译系统以提升虚拟机性能。其中,编译器是动态编译系统的核心,编译器以一组连续的虚拟机指令序列(基本块、函数或方法)为单位整体编译成本地CPU指令序列(所生成的本地CPU指令序列也称为本地方法),然后由硬件直接执行编译后的本地方法;编译器由于避免了大量重复的取指令和译码的过程,同时又在编译时进行了大量卓有成效的优化,因而编译器的性能可以达到解释器的性能的10倍以上。和传统C/C++等静态编译不同,编译器是在程序运行过程中进行动态编译的,故又将其称为即时编译器(Just-in-timeCompiler,简称JIT)。
虚拟机的动态编译会引入额外的运行时开销。如果编译的方法过多,动态编译占用大量的计算机资源,使得程序的正常执行受到影响,导致虚拟机对外界的响应变得迟钝,总的运行效率下降。相反,如果编译的方法过少,大多数方法以效率低下的解释模式执行,造成程序运行速度同样非常缓慢。因此,为了降低编译开销,虚拟机仅对检测到的执行频度较高的方法(也称为热点方法,或程序热点)进行编译,可见,针对动态编译系统,对程序中热点方法的有效识别显得非常关键。
热点方法识别一直都是一个开放性难题,现有虚拟机系统中均设计了专门的热点识别系统,其核心思想是通过程序过去的执行特征预测将来的行为。
一种常见的热点方法识别方法是基于热点阈值的一次性判别准则:解释器会对每个方法的调用次数进行计数;当虚拟机侦测到方法m的调用次数超过虚拟机中预先设定的热点识别阈值(记为HotThreshold)时,则判定方法m为热点方法,并将m加入到虚拟机的编译队列中等待编译。为了获得一个理想的热点阈值,虚拟机开发人员通常会利用大量的测试集,对许多不同的热点阈值进行试验,选取综合性能最优的值作为最终的热点阈值。但是,这种从测试集中通过试验的方法得出的热点阈值并不具备普遍适用性;由于程序行为的复杂多变性,单一固定的热点阈值缺乏自适应的调节能力,无法保证在某些测试集上性能较高的热点阈值对实际应用系统同样有效。
另一种常见的热点方法识别方法是动态自适应的热点阈值方法:虚拟机中的热点识别阈值并非固定不变的,而是随程序行为的变化自动进行调整,例如,根据当前虚拟机中等待编译的方法数目来调节热点阈值:当等待编译的方法数目过多时,增大热点识别阈值;而当等待编译的方法数目较少时,则适当降低热点识别阈值。动态自适应的热点阈值方法容易导致虚拟机对程序中热点方法的过度识别。当虚拟机中等待编译的方法数目较少时(例如在程序启动时),热点识别阈值相对较低,可能使得许多短期内执行频度较高,但总体上对程序性能影响微弱的方法被虚拟机错误地判别为热点方法。热点方法的过度识别,不仅使得虚拟机浪费宝贵的资源去编译对性能影响不大的方法,还导致对重要的热点方法进行识别的延迟增大,严重降低虚拟机性能。
发明内容
本发明实施例提供一种热点方法识别方法及装置,以避免对热点方法的过度识别,降低编译开销,提升虚拟机的性能,同时增强系统的鲁棒性。
第一方面,本发明实施例提供一种热点方法识别方法,其中,所述方法包括:若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量;
若所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;并将所述第一方法加入到所述当前编译队列。
根据第一方面,在第一方面的第一种可能的实现方式中,还包括:
若所述当前编译队列未满,则将所述第一方法加入到所述当前编译队列。
根据第一方面,在第一方面的第二种可能的实现方式中,所述将所述当前编译队列中的一个或多个待编译的方法删除,包括:
随机将所述当前编译队列中的一个或多个待编译的方法删除;
或者,
将位于所述当前编译队列首部的一个或多个待编译的方法删除;
或者,
将所述当前编译队列中运行速度最小的一个或多个待编译的方法删除。
根据第一方面、第一方面的第一种至第二种可能的实现方式中的任意一种,在第一方面的第三种可能的实现方式中,还包括:
对于所述当前编译队列中的任一待编译的方法m,采用以下公式得到所述待编译的方法m的运行速度speed(m):
其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,Δexecute(m)表示在过去的预设时间常量的时间段内所述待编译的方法m的调用次数。
第二方面,本发明实施例提供一种热点方法识别装置,其中,所述装置包括:
判断模块,用于若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量;
删除模块,用于若所述判断模块判断所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;
加入模块,用于在所述删除模块将所述当前编译队列中的一个或多个待编译的方法删除之后,将所述第一方法加入到所述当前编译队列。
根据第二方面,在第二方面的第一种可能的实现方式中,所述加入模块还用于:
若所述判断模块判断所述当前编译队列未满,则将所述第一方法加入到所述当前编译队列。
根据第二方面,在第二方面的第二种可能的实现方式中,所述删除模块具体用于:
随机将所述当前编译队列中的一个或多个待编译的方法删除;
或者,
将位于所述当前编译队列首部的一个或多个待编译的方法删除;
或者,
将所述当前编译队列中运行速度最小的一个或多个待编译的方法删除。
根据第二方面、第二方面的第一种至第二种可能的实现方式中的任意一种,在第二方面的第三种可能的实现方式中,还包括:
参数获取模块,用于对于所述当前编译队列中的任一待编译的方法m,采用以下公式得到所述待编译的方法m的运行速度speed(m):
其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,Δexecute(m)表示在过去的预设时间常量的时间段内所述待编译的方法m的调用次数。
采用本发明实施例提供的热点方法识别方法及装置,通过将当前编译队列的长度预设为有界的常量,使得当前编译队列是有界的,处于当前编译队列中等待编译的方法的数目受限于当前编译队列的长度,通过执行编译队列替换,将最有编译价值的方法保留在编译队列中,提升了编译队列的收益率;同时也降低了对重要方法的编译延迟,能有效提升虚拟机的性能。同时,在本发明实施例中,由于当前编译队列是有界的,虚拟机通过执行编译队列替换,能够及时清除当前编译队列中对性能影响相对较小的方法,避免对热点方法的过度识别,大幅降低运行时的编译开销,从而使虚拟机对热点识别阈值的敏感性下降,降低虚拟机性能随热点识别阈值变化的波动范围,显著提升虚拟机性能的鲁棒性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的热点方法识别方法的流程图;
图2为本发明实施例提供的热点方法识别方法的原理框图;
图3为本发明实施例提供的热点方法识别方法的原理流程图;
图4为本发明实施例提供的热点方法识别装置的结构示意图;
图5为本发明实施例提供的热点方法识别装置的另一结构示意图;
图6为本发明实施例提供的热点方法识别装置的又一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的热点方法识别方法的流程图。如图1所示,本发明实施例提供的热点方法识别方法,包括:
101、若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量。
102、若所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;并将所述第一方法加入到所述当前编译队列。
本发明实施例提供的热点方法识别方法的执行主体为热点方法识别装置,所述热点方法识别装置可以是编译器、虚拟机、或处理器。
在本发明实施例中,所述方法在虚拟机中实际上就是一串虚拟机指令的集合。程序中所有方法均由解释器开始执行,解释器在执行方法的同时,虚拟机会对程序中每个方法的调用次数进行检测,例如对第一方法的调用次数进行计数,其中,所述第一方法可以为程序中的任意方法。
在本发明实施例中,当前编译队列所能容纳的待编译的方法的数目为预设的常量,例如所述当前编译队列的长度可以为64,即将当前编译队列的长度预设为有界的常量,使得当前编译队列是有界的。当虚拟机侦测到第一方法的调用次数超过虚拟机中预先设定的热点识别阈值时,则尝试将该第一方法加入到当前编译队列,判断当前编译队列是否已满:若判定所述当前编译队列已满,则通过对当前编译队列执行替换操作,将所述当前编译队列中的一个或多个待编译的方法删除,并将所述第一方法加入到所述当前编译队列。可选的,若判定所述当前编译队列未满,则将所述第一方法加入到所述当前编译队列。
本发明实施例提供的热点方法识别方法,由于当前编译队列是有界的,处于当前编译队列中等待编译的方法的数目受限于当前编译队列的长度,通过执行编译队列替换,将最有编译价值的方法保留在编译队列中,提升了编译队列的收益率;同时也降低了对重要方法的编译延迟,能有效提升虚拟机的性能。同时,在本发明实施例中,由于当前编译队列是有界的,虚拟机通过执行编译队列替换,能够及时清除当前编译队列中对性能影响相对较小的方法,避免对热点方法的过度识别,大幅降低运行时的编译开销,从而使虚拟机对热点识别阈值的敏感性下降,降低虚拟机性能随热点识别阈值变化的波动范围,显著提升虚拟机性能的鲁棒性。
在本发明一实施例中,当虚拟机侦测到第一方法的调用次数超过虚拟机中预先设定的热点识别阈值时,则判断当前编译队列是否已满;若判定所述当前编译队列已满,则根据编译队列成员替换方法,将所述当前编译队列中的一个或多个待编译的方法删除,并将所述第一方法加入到所述当前编译队列。进一步,所述编译队列成员替换方法可以为以下任意一种或组合:
1、随机替换方法:虚拟机随机将所述当前编译队列中的一个或多个待编译的方法删除。
2、先入先出(FIFO)替换方法:虚拟机将位于所述当前编译队列首部的一个或多个待编译的方法删除。
3、基于方法运行速度的替换方法:虚拟机将所述当前编译队列中运行速度最小的一个或多个待编译的方法删除。在本实施例中,方法的运行速度是指该方法的执行频度,即单位时间内该方法被调用的次数。
4、基于方法大小的替换:根据所述当前编译队列中各待编译的方法的大小,按照用户需求,将最大的一个或多个待编译的方法删除。显然,在具体实现时,也可以将最小的一个或多个待编译的方法删除,或者基于其他以方法的大小为参数的替换方法,本发明并不以此为限。在本实施例中,所述方法的大小,是指该方法中包含的所有虚拟机指令的长度总和。例如:假设方法m仅由add(长度为1个字节)、invoke(长度为3个字节)和sub(长度为1个字节)三条虚拟机指令构成,则方法m的大小为1+3+1=5(字节)。
本领域技术人员可以理解,上述列举的编译队列成员替换方法,只是示例,并不对本发明实现对编译队列成员的替换构成限定。
在上述实施例的基础上,对于所述当前编译队列中的任一待编译的方法m,采用以下公式得到所述待编译的方法m的运行速度speed(m):
其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,例如所述Δt可以为3ms、4ms、5ms等。Δexecute(m)表示在过去的预设时间常量的时间段内所述待编译的方法m的调用次数。
本发明实施例提供的热点方法识别方法,由于当前编译队列是有界的,处于当前编译队列中等待编译的方法的数目受限于当前编译队列的长度,通过执行编译队列替换,将最有编译价值的方法保留在编译队列中,提升了编译队列的收益率;同时也降低了对重要方法的编译延迟,能有效提升虚拟机的性能。同时,在本发明实施例中,由于当前编译队列是有界的,虚拟机通过执行编译队列替换,能够及时清除当前编译队列中对性能影响相对较小的方法,避免对热点方法的过度识别,大幅降低运行时的编译开销,从而使虚拟机对热点识别阈值的敏感性下降,降低虚拟机性能随热点识别阈值变化的波动范围,显著提升虚拟机性能的鲁棒性。
图2为本发明实施例提供的热点方法识别方法的原理框图。图3为本发明实施例提供的热点方法识别方法的原理流程图。如图2、图3所示,基于本发明实施例提供的热点方法识别方法,应用于虚拟机,所述虚拟机包括解释器和编译器。
在虚拟机的启动过程中,首先完成对解释器、编译器和其它部分的初始化;解释器初始化完毕后开始执行程序中的方法;编译器初始化完毕后进入等待编译的状态;解释器在执行方法的同时,对方法的调用次数进行计数并且判断方法的调用次数是否超过热点识别阈值:若未超过热点识别阈值,则继续解释执行;若否,则将该方法判别为热点方法候选,同时唤醒编译器,准备编译。
虚拟机尝试将该识别的热点方法候选加入当前编译队列;若此时当前编译队列未满,则直接将该方法加入当前编译队列中;若否,则先按照指定的编译队列替换策略从当前编译队列中替换出一个或者多个方法,随后再将该方法加入当前编译队列中。
编译器判断当前编译队列是否为空:若判定当前编译队列不为空,则从当前编译队列选择方法进行编译,然后由硬件直接执行编译后的本地方法,并将已编译的方法从当前编译队列中删除。若判定当前编译队列为空,则进入等待编译的状态。
本发明实施例提供的热点方法识别方法,由于当前编译队列是有界的,处于当前编译队列中等待编译的方法的数目受限于当前编译队列的长度,通过执行编译队列替换,将最有编译价值的方法保留在编译队列中,提升了编译队列的收益率;同时也降低了对重要方法的编译延迟,能有效提升虚拟机的性能。同时,在本发明实施例中,由于当前编译队列是有界的,虚拟机通过执行编译队列替换,能够及时清除当前编译队列中对性能影响相对较小的方法,避免对热点方法的过度识别,大幅降低运行时的编译开销,从而使虚拟机对热点识别阈值的敏感性下降,降低虚拟机性能随热点识别阈值变化的波动范围,显著提升虚拟机性能的鲁棒性。
图4为本发明实施例提供的热点方法识别装置的结构示意图。如图4所示,本发明实施例提供的热点方法识别装置400,包括:
判断模块401,用于若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量;
删除模块402,用于若所述判断模块401判断所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;
加入模块403,用于在所述删除模块402将所述当前编译队列中的一个或多个待编译的方法删除之后,将所述第一方法加入到所述当前编译队列。
采用本发明实施例提供的热点方法识别装置,通过将当前编译队列预先设定为有界的,从而处于当前编译队列中等待编译的方法的数目受限于当前编译队列的长度,通过执行编译队列替换,将最有编译价值的方法保留在编译队列中,提升了编译队列的收益率;同时也降低了对重要方法的编译延迟,能有效提升虚拟机的性能。同时,在本发明实施例中,由于当前编译队列是有界的,虚拟机通过执行编译队列替换,能够及时清除当前编译队列中对性能影响相对较小的方法,避免对热点方法的过度识别,大幅降低运行时的编译开销,从而使虚拟机对热点识别阈值的敏感性下降,降低虚拟机性能随热点识别阈值变化的波动范围,显著提升虚拟机性能的鲁棒性。
图5为本发明实施例提供的热点方法识别装置的另一结构示意图。在上述实施例的基础上,如图5所示,本发明实施例提供的热点方法识别装置500,也包括:判断模块401、删除模块402、加入模块403;进一步,在本发明实施例中,加入模块403还用于:若所述判断模块401判断所述当前编译队列未满,则将所述第一方法加入到所述当前编译队列。
在本发明一实施例中,所述删除模块402具体用于:随机将所述当前编译队列中的一个或多个待编译的方法删除;或者,将位于所述当前编译队列首部的一个或多个待编译的方法删除;或者,将所述当前编译队列中运行速度最小的一个或多个待编译的方法删除。
图6为本发明实施例提供的热点方法识别装置的又一结构示意图。在上述实施例的基础上,如图6所示,本发明实施例提供的热点方法识别装置600,也包括:判断模块401、删除模块402、加入模块403;进一步,所述热点方法识别装置600还包括:
参数获取模块601,用于对于所述当前编译队列中的任一待编译的方法m,采用以下公式得到所述待编译的方法m的运行速度speed(m):
其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,Δexecute(m)表示在过去的预设时间常量的时间段内所述待编译的方法m的调用次数。
采用本发明实施例提供的热点方法识别装置,通过将当前编译队列预先设定为有界的,从而处于当前编译队列中等待编译的方法的数目受限于当前编译队列的长度,通过执行编译队列替换,将最有编译价值的方法保留在编译队列中,提升了编译队列的收益率;同时也降低了对重要方法的编译延迟,能有效提升虚拟机的性能。同时,在本发明实施例中,由于当前编译队列是有界的,虚拟机通过执行编译队列替换,能够及时清除当前编译队列中对性能影响相对较小的方法,避免对热点方法的过度识别,大幅降低运行时的编译开销,从而使虚拟机对热点识别阈值的敏感性下降,降低虚拟机性能随热点识别阈值变化的波动范围,显著提升虚拟机性能的鲁棒性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种热点方法识别方法,其特征在于,包括:
若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量;
若所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;并将所述第一方法加入到所述当前编译队列。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述当前编译队列未满,则将所述第一方法加入到所述当前编译队列。
3.根据权利要求1所述的方法,其特征在于,所述将所述当前编译队列中的一个或多个待编译的方法删除,包括:
随机将所述当前编译队列中的一个或多个待编译的方法删除;
或者,
将位于所述当前编译队列首部的一个或多个待编译的方法删除;
或者,
将所述当前编译队列中运行速度最小的一个或多个待编译的方法删除。
4.根据权利要求1-3任一所述的方法,其特征在于,还包括:
对于所述当前编译队列中的任一待编译的方法m,采用以下公式得到所述待编译的方法m的运行速度speed(m):
其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,Δexecute(m)表示在过去的预设时间常量的时间段内所述待编译的方法m的调用次数。
5.一种热点方法识别装置,其特征在于,包括:
判断模块,用于若侦测到第一方法的调用次数超过预设的热点识别阈值,则判断当前编译队列是否已满,其中,所述当前编译队列所能容纳的待编译的方法的数目为预设的常量;
删除模块,用于若所述判断模块判断所述当前编译队列已满,则将所述当前编译队列中的一个或多个待编译的方法删除;
加入模块,用于在所述删除模块将所述当前编译队列中的一个或多个待编译的方法删除之后,将所述第一方法加入到所述当前编译队列。
6.根据权利要求5所述的装置,其特征在于,所述加入模块还用于:
若所述判断模块判断所述当前编译队列未满,则将所述第一方法加入到所述当前编译队列。
7.根据权利要求5所述的装置,其特征在于,所述删除模块具体用于:
随机将所述当前编译队列中的一个或多个待编译的方法删除;
或者,
将位于所述当前编译队列首部的一个或多个待编译的方法删除;
或者,
将所述当前编译队列中运行速度最小的一个或多个待编译的方法删除。
8.根据权利要求5-7任一所述的装置,其特征在于,还包括:
参数获取模块,用于对于所述当前编译队列中的任一待编译的方法m,采用以下公式得到所述待编译的方法m的运行速度speed(m):
其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,Δexecute(m)表示在过去的预设时间常量的时间段内所述待编译的方法m的调用次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410812093.8A CN105786586B (zh) | 2014-12-23 | 2014-12-23 | 热点方法识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410812093.8A CN105786586B (zh) | 2014-12-23 | 2014-12-23 | 热点方法识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786586A true CN105786586A (zh) | 2016-07-20 |
CN105786586B CN105786586B (zh) | 2018-10-30 |
Family
ID=56378086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410812093.8A Active CN105786586B (zh) | 2014-12-23 | 2014-12-23 | 热点方法识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786586B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659189A (zh) * | 2019-08-15 | 2020-01-07 | 华为技术有限公司 | 应用程序生成方法、装置、云服务器及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551748A (zh) * | 2009-01-21 | 2009-10-07 | 北京海尔集成电路设计有限公司 | 一种优化的编译方法 |
CN103136029A (zh) * | 2013-03-12 | 2013-06-05 | 无锡江南计算技术研究所 | 即时编译系统自适应调优方法 |
CN103838616A (zh) * | 2014-03-05 | 2014-06-04 | 北京工业大学 | 基于树型程序分支的计算机程序即时编译方法 |
US8806459B2 (en) * | 2007-09-28 | 2014-08-12 | Texas Instruments Incorporated | Java stack machine execution kernel dynamic instrumentation |
-
2014
- 2014-12-23 CN CN201410812093.8A patent/CN105786586B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806459B2 (en) * | 2007-09-28 | 2014-08-12 | Texas Instruments Incorporated | Java stack machine execution kernel dynamic instrumentation |
CN101551748A (zh) * | 2009-01-21 | 2009-10-07 | 北京海尔集成电路设计有限公司 | 一种优化的编译方法 |
CN103136029A (zh) * | 2013-03-12 | 2013-06-05 | 无锡江南计算技术研究所 | 即时编译系统自适应调优方法 |
CN103838616A (zh) * | 2014-03-05 | 2014-06-04 | 北京工业大学 | 基于树型程序分支的计算机程序即时编译方法 |
Non-Patent Citations (2)
Title |
---|
JANTZ M R 等: "Exploring single and multilevel JIT compilation policy for modern machines", 《ACM网站》 * |
LUKAS STADLER 等: "Compilation queuing and graph caching for dynamic compilers", 《ACM网站》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659189A (zh) * | 2019-08-15 | 2020-01-07 | 华为技术有限公司 | 应用程序生成方法、装置、云服务器及可读存储介质 |
CN110659189B (zh) * | 2019-08-15 | 2021-02-23 | 华为技术有限公司 | 应用程序生成方法、装置、云服务器及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105786586B (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7721331B1 (en) | Methods and apparatus for performing a pre-processing activity | |
EP2955658B1 (en) | System and methods for detecting harmful files of different formats | |
RU2622627C2 (ru) | Способ обнаружения вредоносных исполняемых файлов, содержащих интерпретатор, посредством комбинирования эмуляторов | |
RU2531861C1 (ru) | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса | |
CA2804258C (en) | Systems and methods for alternating malware classifiers in an attempt to frustrate brute-force malware testing | |
EP2082318B1 (en) | Register-based instruction optimization for facilitating efficient emulation of an instruction stream | |
EP2750037B1 (en) | System and method for improving the efficiency of application emulation acceleration | |
US10102373B2 (en) | Method and apparatus for capturing operation in a container-based virtualization system | |
WO2013026320A1 (zh) | 一种网页挂马检测方法及系统 | |
US9900324B1 (en) | System to discover and analyze evasive malware | |
CN109643346B (zh) | 控制流完整性 | |
CN106708497B (zh) | 一种代码执行方法及装置 | |
JP2019061636A (ja) | ファイルのウイルス対策スキャン実行のため仮想マシン上にログを生成するシステム及び方法 | |
EP3113060B1 (en) | Method and apparatus for determining behaviour information corresponding to dangerous file | |
KR20080096518A (ko) | 해석가능한 코드를 실행시키는 것과 연관된 위험의 사정을용이하게 하는 컴퓨터 구현 방법, 컴퓨터 프로그램 제품,및 컴퓨팅 시스템 | |
CN105786586A (zh) | 热点方法识别方法及装置 | |
KR101678607B1 (ko) | 민감명령어 지연처리 방법 및 이를 수행하는 장치 | |
KR20110057297A (ko) | 악성 봇 동적 분석 시스템 및 방법 | |
CN106682498A (zh) | 样本的执行方法和装置 | |
Wu et al. | Modeling the virtual machine launching overhead under fermicloud | |
Shan et al. | BTMD: A framework of binary translation based malcode detector | |
CN105608374B (zh) | 虚拟机逃逸的检测方法及装置 | |
US20130254893A1 (en) | Apparatus and method for removing malicious code | |
US11886589B2 (en) | Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method | |
CN107678945A (zh) | 一种网页应用阻塞的判断方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |