全国协议5人面授小班,企业级独立开发考核,转业者的IT软件工程师基地 登录/注册 | 如何报名

免费领取试听课程

并获得专业顾问一对一进行选课辅导

课程名称不能为空
姓名不能为空
手机号码不能为空

领取成功

为什么JS和Python比C++速度慢好几倍?

行业新闻 汉码未来 | Python JavaScript

2022-08-04 10:52:39

在报告中,研究人员指出,自 2015 年以来,具有集成运行时环境的编程语言越来越受欢迎,其中,全球知名的代码托管平台 GitHub 上最受欢迎的三种语言分别是 JavaScript、Java 和 Python。

为什么JS和Python比C++速度慢好几倍?

编程语言作为开发工具,帮助开发人员快速构建各种应用程序和服务,并大大提高了生产力。与此同时,这些语言本身也带来了各种功能,如动态类型检查.内存管理包括垃圾收集、动态内存安全检查等。因此,研究人员使用「代管语言」(managedlanguages)专业名词代指这些类型的编程语言。

事实上,代理语言越来越多地用于实现性能非常重要的系统软件,例如Hadoop和Spark都在Java虚拟机(JVM)上面的操作,因为它们单独使用Java和Scala实现;Kubernetes.etcd(分布式键值存储)和M3(由Uber建立的分布式时间序列数据库和查询引擎)都是使用的Go实现的。

目前,甚至连操作系统(OS)的内核Biscuit也是用Go实现的。Openstack.Paypal.Instagram和Dropbox都大量使用Python,其中,Python是Dropbox"最广泛的语言应用于后台服务和桌面客户端",在一个存储库中有近400万行Python代码;JavaScript也被用于Facebook的Bladerunnerpub/sub性能关键路径中的系统。

在开发过程中,项目一开始很少考虑编程语言的性能。部分原因是,许多开发人员认为性能问题可以在未来慢慢解决,也许他们可以通过简单地添加硬件来横向扩展。

然而,随着代码产品或服务规模的扩大,服务变得越来越慢或硬件成本上升,性能成为一个不容忽视的问题。这就是为什么Stream要放弃了Python而改用Go.Discord从Go切换到Rust.Twitter从RubyonRails切转到Scala和Java主要原因。

许多开发人员通常想要打破他们的头脑,以提高他们的性能,但现实中只有两种方法。一个是尝试从现有代码中尽可能地改进,另一个是考虑所使用的编程语言是否达到了性能极限,看看是否有必要将旧代码移植到性能更高的新语言中。

为了完全解决系统软件中不同编程语言造成的性能问题,研究人员决定将其归类为C为极限,对Java.Go.JavaScript和Python四种编程,以及应用最广泛的系统CPython.OpenJDK。Node.js与JavaScript的V8发动机对定量性能进行深入分析。

与此同时,研究人员重新开始建立六个应用程序,并创建了一个名称LangBench基准。这些应用程序涵盖了的计算强度.内存使用.网络和磁盘I/O复杂性,如强度和可用的并发应用领域。在这方面,研究人员分析了他们的完成时间.资源利用和可扩展性。

测试方法

值得一提的是,研究人员指出,这篇论文没有也不可能全面回答每一个与语言运行性能有关的问题。本文仅评估了四种语言的运行情况,只评估了每种语言中使用最广泛的语言的实现情况。此外,研究人员只在一个单一的操作系统/硬件堆栈上操作工作负载。研究结果与使用基准有关。这些基准模拟了现实生活中的应用,但它们可能不代表广泛的应用。

在测试方法上,研究人员测试了两台内部服务器,每台服务器有两台XeonE5-2630V3.16个虚拟核心.2.4GHzCPU.256GBDDR4内存和两个7200RPM硬盘。它们运行的系统是Linux4.15.0,并通过10Gbps互联网连接。

对于C研究人员使用的程序,GCC9.3.0根据C17标准用-O3.对于OpenJDK13.CPython3.8.1和Go1.14.1、它使用各自语言的参考实现。同时,使用Node.js13.12.0和V87.9.317.25版本。

研究人员对每个基准进行了五次测试,取平均值。其中,存储在运行键-值中.基准日志分析器和文件服务器,client和worker线程数量从1到1024不等。OpenJDK和V8.最小的内存是通过确定第一堆不会造成崩溃的设备来设置的;对于Go而言,GOGC设置为5%。随后,研究人员继续增加堆的设置,直到性能不再提高。使用第一个设置的结果(即最小堆大小)获得最佳性能。对于日志分析器和文件服务器基准,使用的日志文档存储在分布式文件系统中,复制索引为2。在运行每个基准之前,研究人员已经清除了它Linux确保检测准确性的页面缓存。


以上就是汉码未来给大家分享的文章,希望对小伙伴们有所帮助,想要了解更多为什么JS和Python比C++速度慢好几倍?相关内容的小伙伴可以登录汉码未来官网咨询,主打5人小班,全程面授,主打Java开发,web前端开发等课程,有专业的授课老师为你答疑解惑。

    

分享到:



【免责声明】由于政策等各方面情况的不断调整与变化,本网站所提供的信息仅供参考,请以权威部门公布的正式信息为准。本网站在文章内容来源出处标注为其他平台的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如您对内容、版权等问题存在异议请与本站联系,我们会及时进行处理解决。 删除,请联系客服。
为什么选择汉码未来