JavaScript、Python 比 C++ 慢 8 倍、29 倍?( 二 )
在测试方法上 , 研究人员在两台内部服务器上进行了实验 , 每台服务器有2个XeonE5-2630V3、16个虚拟核心、2.4GHzCPU、256GBDDR4内存和两个7200RPM硬盘 。 它们运行的系统是Linux4.15.0 , 并通过10Gbps的互联网络连接 。
对于C++程序 , 研究人员使用的是GCC9.3.0根据C++17标准用-O3进行编译 。 对于OpenJDK13、CPython3.8.1和Go1.14.1 , 其使用了各自语言的参考实现 。 同时 , 使用Node.js13.12.0和V87.9.317.25版本 。
【JavaScript、Python 比 C++ 慢 8 倍、29 倍?】研究人员对每个基准进行了5次测试 , 取平均值 。 其中 , 在运行键-值存储、日志分析器和文件服务器的基准时 , client和worker线程的数量从1到1024不等 。 对于OpenJDK和V8来说 , 最小的内存量是通过确定不会导致崩溃的第一个堆配置来设置的;对于Go来说 , GOGC被设置为5% 。 然后研究人员不断增加堆的设置 , 直到性能不再提高 。 其使用第一个设置的结果(即最小的堆大小)得出最佳性能 。 对于日志解析器和文件服务器基准 , 所用的日志文件被存储在一个复制系数为2的分布式文件系统上 。 在运行每个基准之前 , 研究人员都清除了Linux的页面缓存 , 以保证测试准确性 。
Java、Go更具竞争力 , JavaScript、Python比C++慢了8倍和29倍
最终LangBench中各项基准的运行时间结果如下所示:

文章图片
其中 , 优化的GCC平均速度最快 , Go和OpenJDK紧随其后 , 比GCC慢了1.30倍和1.43倍 。 令人印象深刻的是 , 在12项基准测试中 , Go和OpenJDK有3项超过了优化的GCC 。

文章图片
总体而言 , 研究人员发现V8/Node.js和CPython表现最差 , 执行应用程序的平均速度分别比C++应用程序慢8.01倍和29.50倍 , 这意味着运行时下 , JavaScript、Python要比C++慢这么多 。 更糟糕的是 , 这两个运行时上的应用程序扩展性很差 , 因为它们无法有效地利用多个内核 。 在极端情况下 , CPython比GCC慢了129.66倍(在排序基准中) 。 V8/Node.js和CPython只有在工作负载受到磁盘I/O的瓶颈时 , 即在文件服务器基准中 , 才与GCC有竞争力 。
相比之下 , OpenJDK和Go应用程序即Java和Go语言比C++更具有性能竞争力 , 运行速度仅慢了1.43倍和1.30倍 , 并且可以轻松扩展到多个内核 。 在一些应用中 , OpenJDK和Go的性能超过了C++的同类产品 。
更多完整报告内容详见:https://www.usenix.org/system/files/atc22-lion.pdf
- 买七彩虹RTX30显卡、整机送大礼了!CF限定礼包快抢来自买七彩虹的消息|买七彩虹rtx30显卡、整机送大礼了!cf限定礼包快抢
- 月球是哪儿来的?同样是内太阳系行星的水星、金星和火星|月球身世之谜是怎么形成的?
- 12月13日消息|oppo首款四足机器人亮相:配有摄像头支持取快递、视频通话
- 一加|一加11R参数曝光:6.7寸120Hz屏、搭载红外传感器
- “通信行程卡”12月13日下线!中国信通院、三大运营商同步删除用户数据
- 服务器|国际乒联服务器出问题 马龙、樊振东等信息遭泄漏
- 12月13日消息|极狐gitlab与微软、神州数码达成合作
- vivos16系列三款机型将搭载exynos1080、天玑8
- 极狐 GitLab 与微软、神州数码达成合作,在中国市场落地运营
- 注射器主要由杆芯、活塞、密封圈、针筒等组成|注射器的活塞在滑动初始力是多少?
