本文是用所有三种语言运行矩阵乘法时发生的情况,由于人们普遍认为C代码比其他流行的编程语言(例如Java和Python)运行得更快,但一直对C的速度(或C实际上最快)感到好奇,因此对C语言做了大量的实现工作,决定进行一些实验,来比较C,Java和Python的性能。
本实验
我决定使用所有三种语言进行矩阵乘法。 矩阵的大小为2048 x 2048(即每个矩阵的乘法和加法运算为8,589,934,592),我为它们填充了0.0到1.0之间的随机值(使用随机值而不是对所有三种语言使用完全相同的矩阵的影响可以忽略不计)。 我将每个实验运行了五次,并计算了平均运行时间。
C代码
#include <stdlib.h> #include <stdio.h> #include <time.h> #define n 2048 double A[n][n]; double B[n][n]; double C[n][n]; int main() { //populate the matrices with random values between 0.0 and 1.0 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { A[i][j] = (double) rand() / (double) RAND_MAX; B[i][j] = (double) rand() / (double) RAND_MAX; C[i][j] = 0; }