猿问

如果以不同的编程语言实现,则了解算法的性能差异

我有一个问题,我认为这可能是一个愚蠢的问题。所以如果我们有一个算法,假设它是递归算法,但是我们用不同的编程语言实现它,实现之间有性能差异吗?例如来自这些示例代码。


void printFunInCpp(int test) 

    if (test < 1) 

        return; 

    else

    { 

        cout << test << " "; 

        printFun(test-1);    // statement 2 

        cout << test << " "; 

        return; 

    } 

}


static void printFunInJava(int test) 

    if (test < 1) 

        return; 

    else

    { 

        System.out.printf("%d ",test); 

        printFun(test-1); // statement 2 

        System.out.printf("%d ",test); 

        return; 

    } 

}


def printFunInPython(test): 


    if (test < 1): 

        return

    else: 


        print( test,end = " ") 

        printFun(test-1) # statement 2 

        print( test,end = " ") 

        return

那么,从上面的例子来看,这 3 种编程语言是否存在性能差异?如果有性能差异,有什么技术可以知道吗?内存使用情况如何?


谢谢


慕沐林林
浏览 179回答 2
2回答

回首忆惘然

是的,存在性能差异,这取决于许多不同的因素。C 代码可能是最快的,因为它直接编译为计算机架构的机器代码,没有比这更快的了。Java 代码将被编译成其自己的虚拟机的机器代码。这肯定会比本地机器代码慢,尽管它在过去几年中已经有了很大的改进。在这个例子中真正会拖累 Java 的是开销(启动 JVM 等等,对于像“Hello World!”这样简单的东西,它可能需要大约 35 MB)。对于长时间运行的程序来说,仅此一项不会成为一个重要因素,但对于在几毫秒内终止的短程序来说,它会。Python 是一种解释型语言。Python 程序必须随时转换为机器指令。当然,这会影响其性能,以换取其他优势。简而言之,不同的语言使用具有不同权衡的截然不同的概念。性能是可以换取其他优势的因素之一。为正确的工作使用正确的工具很重要,对于某些工作,您需要高性能,而对于其他工作,便利性、容错性、兼容性或其他可能更受欢迎。

慕桂英546537

已经有关于这个的讨论:Python 和 C 之间的性能差异只是介于 C 和 Python 之间。一般来说,很难说。在 python 中,很多模块都是用 C 编写的,以提高执行性能。python 设计的好处更多地在于编写和读取代码的容易性,而不是执行时间。希望它有点帮助。
随时随地看视频慕课网APP

相关分类

Java
我要回答