这完全取决于您的任务。但是,您要寻找的候选对象是没有垃圾回收的编译语言。因此,候选人是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)。例如nvidiaTesla。
其他可以加快程序速度的出色设备是现场可编程门阵列(FPGA)。它们比GPGPU慢一个数量级,但比您的CPU快一个数量级。与GPU相比,优点是您可以在运行时对其进行编程。您可以从字面上编程自己的电路!