🕐
PythonとGoの処理速度を比較してみた
最近学び始めた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