ApacheBench에서 잡히 Nim과 Golang을 비교해보십시오.
재미있을 것 같은 Nim으로 갈아 타고 싶습니다.
라고 생각
ab
을 사용해 조사해 보았습니다.하는 방법이 우선 이와 노망! 같은 츳코미 대기로 기사를 썼기 때문에, 가시가시 돌진해 주시면 다행입니다.
사용할 리포지토리
htps : // 기주 b. 코 m / 미지메 / ぁ ぇ 밧 p 헷 rld
추가
환경
AMI: ami-785c491f
Instance-Type: t2.micro
결과
metrics/lang
Nim
Golang
Requests per second [#/sec]
6527.52
7341.14
Time per request [ms]
15.320
13.622
Time per request [ms] (mean, across all concurrent requests)
0.153
0.136
Transfer rate [Kbytes/sec] received
325.10
931.98
Transfer rate는 대략 3배 정도 차이가 있습니다...
작업 로그
docker setup
docker-machine create --driver amazonec2 --amazonec2-region ap-northeast-1 aws-default
eval "$(docker-machine env aws-default | tee ~/.dockerc)"
docker-machine ls aws-default
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
aws-default * amazonec2 Running tcp://13.114.246.147:2376 v17.09.0-ce
docker stats
그렇다고 맛이 없었기 때문에 google/cadvisor
를 사용하여 감시합니다.docker-compose build
docker-compose up -d cadvisor
cadvisor 포트 열어 둡니다.
aws ec2 describe-instances # security group id 調べる
aws ec2 authorize-security-group-ingress --group-id ${sgid} --port 8080 --cidr $(curl -sSL ifconfig.io)/32 --protocol tcp
우선 nim에서 ...
docker-compose up -d nimapp
# 立ち上がったら、http://${dockerのIP}:8080/containers/docker の一番下をみる
docker-compose up nimapp-bench
과연. 과연. (노란색이 nimapp)
docker-compose logs nimapp-bench
...
nimapp-bench_1 | Concurrency Level: 100
nimapp-bench_1 | Time taken for tests: 15.501 seconds
nimapp-bench_1 | Complete requests: 100000
nimapp-bench_1 | Failed requests: 0
nimapp-bench_1 | Total transferred: 5100000 bytes
nimapp-bench_1 | HTML transferred: 1200000 bytes
nimapp-bench_1 | Requests per second: 6451.14 [#/sec] (mean)
nimapp-bench_1 | Time per request: 15.501 [ms] (mean)
nimapp-bench_1 | Time per request: 0.155 [ms] (mean, across all concurrent requests)
nimapp-bench_1 | Transfer rate: 321.30 [Kbytes/sec] received
...
그런 다음 Golang ...
docker-compose stop nimapp
docker-compose up -d goapp
docker-compose up goapp-bench
알겠어. 알겠어. 알겠어.
docker-compose logs goapp-bench
...
goapp-bench_1 | Concurrency Level: 100
goapp-bench_1 | Time taken for tests: 14.371 seconds
goapp-bench_1 | Complete requests: 100000
goapp-bench_1 | Failed requests: 0
goapp-bench_1 | Total transferred: 13000000 bytes
goapp-bench_1 | HTML transferred: 1300000 bytes
goapp-bench_1 | Requests per second: 6958.52 [#/sec] (mean)
goapp-bench_1 | Time per request: 14.371 [ms] (mean)
goapp-bench_1 | Time per request: 0.144 [ms] (mean, across all concurrent requests)
goapp-bench_1 | Transfer rate: 883.41 [Kbytes/sec] received
...
... 잘 모르기 때문에 나란히 확인합니다.
docker-compose stop goapp nimapp
docker system prune # 一旦掃除
docker-compose up -d goapp nimapp
docker-compose up goapp-bench
docker-compose up nimapp-bench
... 과연? (빨강 goapp, 노랑 nimapp)
감상
참고로 한 페이지라면 Golang 과 같은 rps 이었기 때문에 검증 절차가 잘못되었을 가능성이 크다 잘못되었습니다
동시 접속수가 100인 것은 1000정도 넘으면 nim측이 막히기 시작하므로
적게 설정하고 있습니다. 보통 nim이라도 다루었습니다. 슈고이
참고
Reference
이 문제에 관하여(ApacheBench에서 잡히 Nim과 Golang을 비교해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mijime/items/d9cd15f3059dae4aa576텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)