aboutsummaryrefslogtreecommitdiffstats
path: root/benchmarks/http
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/http')
-rw-r--r--benchmarks/http/README.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/benchmarks/http/README.md b/benchmarks/http/README.md
index 22fc6d3..cd37579 100644
--- a/benchmarks/http/README.md
+++ b/benchmarks/http/README.md
@@ -38,3 +38,14 @@ JSON 본문의 비용은 상태 없는 앱 [echo.aup](echo.aup)에 `load PORT �
앱 벤치마크의 마지막 작업(`mixed`)은 내구성 점수 POST 8연결과 합계 GET 56연결을 부하 생성기 둘로 함께 보내, 쓰기가
동기화하는 동안 읽기가 기다리는지 본다([080](../../docs/research/080-snapshot-reads.md)). 두 행(posts, reads)으로
나오고, CPU 1초당 답은 두 행을 합친 것이다.
+
+어디에 시간을 쓰는지는 [sample.c](../sample.c)로 본다. perf가 없는 기기에서 `perf_event_open`으로 명령의 모든 스레드를 사용자
+시간 50 µs마다 표본으로 뜨고, 함수별로 모은다(커널 시간은 /proc의 합계만). arm64에서는 링크 레지스터도 받아, 공유
+라이브러리의 말단 함수(memcpy, strcmp)에 쓴 시간을 부른 함수별로 다시 보여 준다. 심볼을 뺀 libc는 같은 빌드의 디버그 파일을
+`SAMPLE_DEBUG` 아래 `.build-id/`에 두면 이름이 붙는다(데비안 `-dbg` 꾸러미를 `dpkg-deb -x`로 풀면 된다).
+
+```sh
+cc -O2 -std=c17 -o ../sample ../sample.c
+../sample 8 report.txt ../../build/pure-serve --module editor.pmod --store /var/tmp/sample --port 0 &
+# 서버가 알린 포트로 부하를 준다: ./load PORT 64 5 get 64 keep-alive
+```