首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程语言,一定是C语言最快吗?不,如果可以,Java都可能最快。

这完全取决于您的任务。但是,您要寻找的候选对象是没有垃圾回收的编译语言。因此,候选人是C,C ++,Rust,Fortran,Ocaml和我个人并不真正知道的其他一些编译语言。您可以假设在大多数情况下C比C ++快,因为编译器以相同(相似)的方式工作,但是C ++添加了额外的抽象,例如虚函数表,智能指针等。我在Fortran中假设这些抽象相似,但我不熟悉该语言。另一方面,Rust提供了零成本抽象的保证。该语言具有更实用的编程风格,可让编译器对您的代码进行更好的优化。

如果看时间,还必须在内存和cpu使用之间进行权衡。在具有良好内存性能的系统上,能够缓存更多结果,而不必重新计算。如果您的RAM确实很小或延迟很高,则最好使用较少的内存。为了最大程度地利用缓存,您还必须牢记缓存行。这意味着您的应用程序不仅应该执行随机内存访问,还应按照您希望从RAM中读取它们的顺序对RAM中的数据进行排序,在以后的步骤中再进行一次排序。但是这确实也可以增强您的算法。

您会看到C排名最快,其次是Rust和C ++。您还可以在本文中看到,它们区分了编译语言,VM语言和解释语言,甚至使用完全不同的比例在图中比较这些语言。仅Java作为一种非编译语言似乎与C更加接近,并且可以与某些编译语言相提并论。在表中,您可以看到在基准测试中标准化为最快语言的时间,即C。Rust以4%的开销排在第二位,C ++以56%的开销排在第三位。看来,Rust的零成本抽象确实奏效了。

但是,如果你真的特别特别关心速度,则必须切换到其他硬件。您将需要电路,这些电路可以在一个步骤中分数百步来计算您在CPU中执行的任务。 CPU是通用处理单元,可以很好地执行各种不同的任务,但必须在较小的任务中分解更复杂的任务并将其序列化。

如果您使用大量矩阵乘法,则一定要使用GPU。还有专门用于计算任务的GPU,通用GPU(GPGPU)。例如nvidia Tesla。

其他可以加快程序速度的出色设备是现场可编程门阵列(FPGA)。它们比GPGPU慢一个数量级,但比您的CPU快一个数量级。与GPU相比,优点是您可以在运行时对其进行编程。您可以从字面上编程自己的电路!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210507A07E1C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券