C语言编程需要大内存吗,编程语言,一定是C语言最快吗?不,如果可以,Java都可能最快。...

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

2981cb518222c83562279f4b96ece78f.png

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

e5ce47ca4fba8e6eea089becf28e907d.png

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

9401d8ec9e92c54f2e64c4ccfd51c86b.png

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

06554dc1a7375d1be8fb45f3b08047f9.png

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

c0fbe46f76ac19980e3a981b5e9eb2bc.png

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

94566603269559563034e4c8a87640e7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值