카테고리 없음

golang은 정말 빠른걸까?

sh0seo 2020. 11. 28. 00:10

golang은 컴파일된 바이너리로 실행되기 때문에 java처럼 가상 머신에서 동작하는 언어보다 당연히 빠를 거라고 생각을 했다.

그런데 얼마전 stackoverflow에 java와 golang의 정렬을 비교했는데, golang이 느리다는 것이다.

 

https://stackoverflow.com/questions/55263220/why-is-my-go-array-sorting-code-much-slower-than-java?fbclid=IwAR36BAYDzjwIRz9huWINmufbTeXZKFlz3OQKNXDAbsoscgQbGzATU5ckwC0

 

Why is my Go array sorting code much slower than Java?

After migrating one of my computing heavy backend programs from Java to Go, I find that the performance degraded instead of improving. I tested around some and it seems the array sorting code is the

stackoverflow.com

테스트는 이렇다. 임의로 큰 float64 타입의 배열을 생성 후에, 랜덤값을 배열을 모두 채운다.
그리고 생성한 배열을 API에서 제공하는 정렬 기능으로 배열을 정렬하고 시간을 비교하는 것이다.

 

테스트 결과는 java가 매우 빠르다.

// java
0.3590694
1.6030528 
0.10000905418967532
// go
233.1957ms
5.4633992s 
Number:  0.10002801819954663

단순 비교를 통해 언어의 우위는 의미가 없다고 생각한다. 다만 가상머신에서 동작하는 java라고 느리다는 편견은 갖지 말아야겠다.