Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于堆栈的指令集是影响java';她的表现如何?_Java_Jvm_Stack Based - Fatal编程技术网

基于堆栈的指令集是影响java';她的表现如何?

基于堆栈的指令集是影响java';她的表现如何?,java,jvm,stack-based,Java,Jvm,Stack Based,我们知道java采用基于堆栈的指令集以增强其兼容性,但堆栈操作比寄存器操作慢得多,所以这是降低java性能的一个重要因素吗?我了解到java有时也使用寄存器来加快其执行速度,但我不知道java如何以及何时使用寄存器。 谢谢大家! Java字节码模型与正在运行的应用程序中执行的实际代码关系不大。HotSpot和所有其他主要JVM一样,使用所有适用的优化将字节码编译成本机代码 字节码基于堆栈的模型对现代JVM的性能没有影响。Java字节码模型与正在运行的应用程序中执行的实际代码关系不大。HotSpo

我们知道java采用基于堆栈的指令集以增强其兼容性,但堆栈操作比寄存器操作慢得多,所以这是降低java性能的一个重要因素吗?我了解到java有时也使用寄存器来加快其执行速度,但我不知道java如何以及何时使用寄存器。
谢谢大家!

Java字节码模型与正在运行的应用程序中执行的实际代码关系不大。HotSpot和所有其他主要JVM一样,使用所有适用的优化将字节码编译成本机代码


字节码基于堆栈的模型对现代JVM的性能没有影响。

Java字节码模型与正在运行的应用程序中执行的实际代码关系不大。HotSpot和所有其他主要JVM一样,使用所有适用的优化将字节码编译成本机代码


字节码基于堆栈的模型对现代JVM的性能没有影响。

Java字节码模型与正在运行的应用程序中执行的实际代码关系不大。HotSpot和所有其他主要JVM一样,使用所有适用的优化将字节码编译成本机代码


字节码基于堆栈的模型对现代JVM的性能没有影响。

Java字节码模型与正在运行的应用程序中执行的实际代码关系不大。HotSpot和所有其他主要JVM一样,使用所有适用的优化将字节码编译成本机代码



字节码基于堆栈的模型对现代JVM的性能没有任何影响。

这取决于JVM的实现。Java的性能不会降低。在大多数情况下,在现代JVM上,它与编译后的代码一样快。@TimB但是当我使用一个复杂的算法时,java代码总是比C/C++代码运行慢得多,你怎么解释呢?@xinghui:如果java代码总是慢得多,那么问题可能在于你用java实现的算法。。。根据我的经验,对于大多数问题,Java通常与C/C++一样快,对于某些问题更快,对于其他问题则更慢。通常情况下,Java在mirco基准测试中似乎较慢,因为启动时间较长。这取决于JVM的实现。Java的性能不会降低。在大多数情况下,在现代JVM上,它与编译后的代码一样快。@TimB但是当我使用一个复杂的算法时,java代码总是比C/C++代码运行慢得多,你怎么解释呢?@xinghui:如果java代码总是慢得多,那么问题可能在于你用java实现的算法。。。根据我的经验,对于大多数问题,Java通常与C/C++一样快,对于某些问题更快,对于其他问题则更慢。通常情况下,Java在mirco基准测试中似乎较慢,因为启动时间较长。这取决于JVM的实现。Java的性能不会降低。在大多数情况下,在现代JVM上,它与编译后的代码一样快。@TimB但是当我使用一个复杂的算法时,java代码总是比C/C++代码运行慢得多,你怎么解释呢?@xinghui:如果java代码总是慢得多,那么问题可能在于你用java实现的算法。。。根据我的经验,对于大多数问题,Java通常与C/C++一样快,对于某些问题更快,对于其他问题则更慢。通常情况下,Java在mirco基准测试中似乎较慢,因为启动时间较长。这取决于JVM的实现。Java的性能不会降低。在大多数情况下,在现代JVM上,它与编译后的代码一样快。@TimB但是当我使用一个复杂的算法时,java代码总是比C/C++代码运行慢得多,你怎么解释呢?@xinghui:如果java代码总是慢得多,那么问题可能在于你用java实现的算法。。。根据我的经验,对于大多数问题,Java通常与C/C++一样快,对于某些问题更快,对于其他问题则更慢。通常,Java在mirco基准测试中似乎较慢,因为启动时间较长。您所说的在长时间系统中可能是正确的。但无论如何,Java是一种解释性编程语言,HotSpot只编译热代码。因此我认为仍然有一部分代码是由jvm堆栈指令执行的。它是对的吗?你是对的,那些性能与整个系统性能无关的代码部分(很少执行的代码——例如,系统花费2%的时间解释字节码)。顺便说一句,Java不是任何官方定义或其结果所解释的PL。实际生产的硬件本机执行字节码。至于“在长时间系统中正确”,这也是错误的:HotSpot有分层编译——C1和C2编译器。在
客户机
模式下,C1是专用的,而在
服务器
中,您可以将所有代码立即编译成C1(完全没有解释),然后逐渐重新编译成C2。您所说的在长时间系统中可能是正确的。但无论如何,java是一种解释性编程语言,HotSpot只是编译热代码,所以我认为还有一部分代码是由jvm堆栈指令执行的。它是对的吗?你是对的,那些性能与整个系统性能无关的代码部分(很少执行的代码——例如,系统花费2%的时间解释字节码)。顺便说一句,Java不是任何官方定义或其结果所解释的PL。实际生产的硬件本机执行字节码。至于“在长时间系统中正确”,这也是错误的:HotSpot有分层编译——C1和C2编译器。在
客户端
模式中,C1是专用的,而在
服务器
中,您可以将所有代码立即编译成C1(完全没有解释),然后逐渐重新编译成C2。您所说的在长时间系统中可能是正确的。但是