我有一个问题,我认为这可能是一个愚蠢的问题。所以如果我们有一个算法,假设它是递归算法,但是我们用不同的编程语言实现它,实现之间有性能差异吗?例如来自这些示例代码。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 程序必须随时转换为机器指令。当然,这会影响其性能,以换取其他优势。
简而言之,不同的语言使用具有不同权衡的截然不同的概念。性能是可以换取其他优势的因素之一。为正确的工作使用正确的工具很重要,对于某些工作,您需要高性能,而对于其他工作,便利性、容错性、兼容性或其他可能更受欢迎。
慕桂英546537
TA贡献1848条经验 获得超10个赞
已经有关于这个的讨论:
只是介于 C 和 Python 之间。
一般来说,很难说。在 python 中,很多模块都是用 C 编写的,以提高执行性能。python 设计的好处更多地在于编写和读取代码的容易性,而不是执行时间。
希望它有点帮助。
添加回答
举报
0/150
提交
取消