为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕沐林林 2021-11-24 18:28:51
我有一个问题,我认为这可能是一个愚蠢的问题。所以如果我们有一个算法,假设它是递归算法,但是我们用不同的编程语言实现它,实现之间有性能差异吗?例如来自这些示例代码。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 种编程语言是否存在性能差异?如果有性能差异,有什么技术可以知道吗?内存使用情况如何?谢谢
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

是的,存在性能差异,这取决于许多不同的因素。C 代码可能是最快的,因为它直接编译为计算机架构的机器代码,没有比这更快的了。

Java 代码将被编译成其自己的虚拟机的机器代码。这肯定会比本地机器代码慢,尽管它在过去几年中已经有了很大的改进。在这个例子中真正会拖累 Java 的是开销(启动 JVM 等等,对于像“Hello World!”这样简单的东西,它可能需要大约 35 MB)。对于长时间运行的程序来说,仅此一项不会成为一个重要因素,但对于在几毫秒内终止的短程序来说,它会。

Python 是一种解释型语言。Python 程序必须随时转换为机器指令。当然,这会影响其性能,以换取其他优势。

简而言之,不同的语言使用具有不同权衡的截然不同的概念。性能是可以换取其他优势的因素之一。为正确的工作使用正确的工具很重要,对于某些工作,您需要高性能,而对于其他工作,便利性、容错性、兼容性或其他可能更受欢迎。


查看完整回答
反对 回复 2021-11-24
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

已经有关于这个的讨论:

Python 和 C 之间的性能差异

只是介于 C 和 Python 之间。

一般来说,很难说。在 python 中,很多模块都是用 C 编写的,以提高执行性能。python 设计的好处更多地在于编写和读取代码的容易性,而不是执行时间。

希望它有点帮助。


查看完整回答
反对 回复 2021-11-24
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信