为何 HotSpot 虚拟机要使用解释器与编译器并存的架构?

解释器:程序可以迅速启动和执行,消耗内存小 (类似人工,成本低,到后期效率低);

编译器:随着代码频繁执行会将代码编译成本地机器码 (类似机器,成本高,到后期效率高)。

在整个虚拟机执行架构中,解释器与编译器经常配合工作,两者各有优势:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行。在程序运行后,随着时间的推移,编译器逐渐发挥作用,把越来越多的代码编译成本地代码之后,可以获取更高的执行效率。当程序运行环境中内存资源限制较大(如部分嵌入式系统),可以使用解释执行节约内存,反之可以使用编译执行来提升效率。

解释执行可以节约内存,而编译执行可以提升效率。因此,在整个虚拟机执行架构中,解释器与编译器经常配合工作。

发表评论