본문 바로가기

개발/연구

[논문] GoLang 성능 분석

https://info.hackerrank.com/rs/487-WAY-049/images/HackerRank-2020-Developer-Skills-Report.pdf

Go language는 개발자들이 가장 배우고 싶어하는 언어로 꼽히기도 하였다.

그래서 나는 Go Language에 대하여 궁금해졌고, 이에 대한 논문을 나의 랩실 박사님의 도움을 받아 논문을 쓸 기회가 생겼다.

 

일단, Go Language의 특징부터 확인해보자.

- Go Language의 장점은 OS환경에서 바로 프로세스로 옮겨지므로, 훨씬 빠르다는 장점이 있다.(자바의 경우 JVM을 거쳐서 바이너리로 변환 후 프로세스로 옮겨지게 됨.)

- 멀티 쓰레드를 다루기 매우 쉽다.

- 매우 쉬움

- 구글의 지원을 받음

........ 등 등

여러 특징과 장점들이 있다. Go는 최근들어 아주 핫하게 뜨고 있는 언어임은 확실하기에, 궁금해졌다.

 

 

www.dbpia.co.kr/Journal/articleDetail?nodeId=NODE09371872

 

효율적인 웹 서비스 구축을 위한 GoLang 성능 분석

논문, 학술저널 검색 플랫폼 서비스

www.dbpia.co.kr

웹 서버로 구성하는 것은 비교적 쉬웠다.

 

자유롭게 쓰고 있던 AWS EC2가 있기에 연구를 위한 연구환경으로 재배치하였다.

서버 인스턴스 : EC2 t2.micro

운영체제 : ubuntu linux 18.04

웹 서버 : NginX

Go Language : go v1.10.4 linux/amd64

DB 인스턴스 : db.t2.micro

Browser : Chrome 83.0.4103.61

 

위와 같은 환경에서 연구를 진행하였다.

서버/DB 간 리소스 응답 시간 측정HTTP를 통한 클라이언트 DOM에 리소스 출력 시간을 측정하는 것이 이번 논문의 핵심이다.

 

서버/DB 간 리소스 응답 시간 측정 결과는 다음과 같다.

Test#NUM 속도(ms) Test#NUM 속도(ms)
1 4.534 16 2.645
2 2.938 17 2.466
3 2.689 18 2.599
4 2.630 19 5.626
5 3.070 20 2.596
6 5.489 21 2.629
7 3.037 22 2.522
8 2.867 23 2.632
9 5.107 24 2.473
10 2.679 25 2.673
11 4.722 26 2.571
12 2.552 27 6.203
13 4.976 28 2.715
14 2.721 29 2.616
15 5.236 30 3.480
평균 3.39

 

HTTP를 통한 클라이언트 DOM에 리소스 출력 시간 측정 결과는 다음과 같다.

Test#NUM Waiting(TTFB)(ms) Request sent(ms)
1 11.92 0.15
2 11.97 0.14
3 12.10 0.99
4 11.42 0.14
5 11.21 0.11
6 12.07 0.18
7 13.07 0.14
8 14.12 0.14
9 15.06 0.14
10 13.04 0.17
11 12.32 0.15
12 14.09 0.15
13 15.16 0.16
14 13.87 0.16
15 11.93 0.15
16 12.06 0.18
17 12.55 0.18
18 13.04 0.19
19 13.29 0.13
20 12.36 0.14
21 14.04 0.18
22 13.62 0.16
23 13.78 0.13
24 14.03 0.15
25 13.16 0.20
26 14.16 0.15
27 12.08 0.18
28 12.95 0.14
29 14.16 0.15
30 13.58 0.15
평균 13.07 0.18

 

개발환경, 개발은 문제가 없었지만 처음 써보는 논문이기에, 글을 쉽게 다루는 방법이나 논문의 형식적인 글을 담아내는 것에서 힘이 많이 들었다. 박사님께서 적극적으로 도와주셨기에, 비교적 빠르게 끝낼 수 있었다.