굉장히 빠른 Go-like Server Swift Swift 라이브러리 Prorsum을 사용해 보았습니다.
Prorsum 설치 방법을 알려주고 샘플을 만들었으므로 공유합니다.
사용한 라이브러리
htps : // 기주 b. 코 m / 노포 만 / P 로스 m
A Go like concurrent system + networking/http library for Swift that works on Linux and Mac
벤치마크 결과는 다음
너무 빠르지 않니?
3분 안에 할 수 있을지도 모르기 때문에 다음 단계를 시도해 봅시다!
(주) 이미 인스톨 하고 있던 라이브러리의 인스톨 순서가 빠져 있을지도 모릅니다.
Terminal.app를 열고
다음 명령을 치십시오.
$ mkdir ProrsumSample
$ cd ProrsumSample
$ swift package init
$ vim Package.swift
Package.swift를 다음과 같이 편집
import PackageDescription
let package = Package(
name: "ProrsumSample",
dependencies: [
.Package(url: "https://github.com/noppoMan/Prorsum.git", majorVersion: 0, minor: 1),
]
)
ESC를 누르고 : wq vim 명령으로 Package.swift를 저장하고 닫습니다.
$ swift build
$ vim Sources/main.swift
Sources/main.swift를 다음과 같이 편집
import Prorsum
import Foundation
let server = try! HTTPServer { (request, writer) in
do {
let response = Response(
headers: ["Server": "Prorsum Micro HTTP Server"],
body: .buffer("hello Server Side Swift".data)
)
try writer.serialize(response)
writer.close()
} catch {
fatalError("\(error)")
}
}
try! server.bind(host: "0.0.0.0", port: 3000)
print("Server listening at 0.0.0.0:3000")
try! server.listen()
RunLoop.main.run()
ESC를 누르고 : wq vim 명령을 사용하여 Sources/main.swift를 저장하고 닫습니다.
Terminal.app를 열고
다음 명령을 치십시오.
$ swift build
$ .build/debug/ProrsumSample
마지막 .build/debug/ProrsumSample은 프로젝트 이름에 맞게 변경해야합니다.
Terminal.app에서 서버를 시작한 상태에서 Command+T에서 탭을 열고
ab -n 10000 -c 100 -g out.data http://127.0.0.1:3000/
벤치마크를 측정한 후 Control+C에서 서버를 종료하고 gnuplot 설치
htp // 메모 ry의 t후응 d. 코 m / 우신 g-g없는 p-t-p-p-t-apachi-ben ch 마 rk-da /
이것을 참고로
$ brew install gnuplot
$ vim apache-benchmark.p
apache-benchmark.p
# output as png image
set terminal png
# save file to "benchmark.png"
set output "benchmark.png"
# graph title
set title "Server Side Swift for Prorsum\nab -n 10000 -c 100 -g out.data http://127.0.0.1:3000/"
#nicer aspect ratio for image size
set size 1,0.7
# y-axis grid
set grid y
#x-axis label
set xlabel "request"
#y-axis label
set ylabel "response time (ms)"
#plot data from "out.data" using column 9 with smooth sbezier lines
plot "out.data" using 9 smooth sbezier with lines title "something"
ESC를 누르고 : wq vim 명령으로 apache-benchmark.p를 저장하고 닫습니다.
$ gnuplot apache-benchmark.p
$ open benchmark.png
소스를 Xcode에서 편집하려면
$ swift package generate-xcodeproj
$ ProrsumSample.xcodeproj
벤치마크 결과는 다음
측정한 기계 및 사양
noppoMan 님의 라이브러리와 Tokyo Server Side Swift의 발표 자료는 이쪽
A Go like concurrent system + networking/http library for Swift that works on Linux and Mac
htps : // 기주 b. 코 m / 노포 만 / P 로스 m
앞으로 기대하네요!
이상, Tokyo Server Side Swift #6의 참가 보고서였습니다.
Reference
이 문제에 관하여(굉장히 빠른 Go-like Server Swift Swift 라이브러리 Prorsum을 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/applideveloper/items/0ac1a38249cccdc3f2d1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)