🕐

PythonとGoの処理速度を比較してみた

2021/06/22に公開

最近学び始めたGoの処理速度をPythonと比較してみました。

GoとPythonでそれぞれ約数をリストアップする処理を実装し、巨大な数を入力して処理速度を比較しました。

コードはこちら

Pythonの実装

import time

x = int(input())

start = time.time()
answer_list = []

for i in range(1, x+1):
  if x % i == 0:
    answer_list.append(i)

print("answer: ", answer_list)
print(f"elapsed_time:{round((time.time() - start), 1)}[sec]")

Goの実装

package main

import (
	"fmt"
	"time"
)

func main() {
	var x int
	fmt.Scanf("%d", &x)
	start := time.Now()
	var answer_list = []int{}

	for i := 1; i <= x; i++ {
		if x%i == 0 {
			answer_list = append(answer_list, i)
		}
	}

	fmt.Println("answer: ", answer_list)
	end := time.Now()
	fmt.Printf("elapsed_time:%f[sec]\n", (end.Sub(start)).Seconds())
}

結果

GoとPython、どちらも10億を入力して約数を算定した結果、

Python Go
94.8sec 9.2sec

Pythonに比べGoの処理時間は1/10で済みました。

インタープリタ言語とコンパイル言語の処理速度の差が如実に出たといったところでしょうか。

以上になります、最後までお読みいただきありがとうございました。

Discussion