aboutsummaryrefslogtreecommitdiffstats
path: root/docs/design
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-26 17:39:03 +0100
committereunhhu <[email protected]>2026-09-26 17:39:03 +0100
commit62f4c51920129216ea779118c341379b5e9f4d7c (patch)
tree4ab29324b457d5afeb27bf72a0d503dd7844b561 /docs/design
parent93aeb3b1e73d096bd22813955bdbe3b4c8ddaf80 (diff)
downloadpure-62f4c51920129216ea779118c341379b5e9f4d7c.tar.gz
pure-62f4c51920129216ea779118c341379b5e9f4d7c.zip
Record the app service against axum and drogon (077)
The scoreboard, 22 lines of aup served by its views and inputs, against the same service written by hand in axum and drogon on the Pi: durable posts about 76 times as many, reads level with drogon and ahead of axum with the least CPU and memory. The note keeps what the profile showed on the way (the kernel's share of a single thread, integers through printf, an owner that saved too early) and what comes next. run.py gains pure-serve-2 and waits for a server that prints its port before it listens.
Diffstat (limited to 'docs/design')
-rw-r--r--docs/design/008-module-format.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/docs/design/008-module-format.md b/docs/design/008-module-format.md
index 95da88e..6948073 100644
--- a/docs/design/008-module-format.md
+++ b/docs/design/008-module-format.md
@@ -291,7 +291,9 @@ text·리스트가 남을 때만 위치를 유지한다.
상태 코드·ETag·오류·본문이 같고, 동시 편집이 커밋을 나누어 쓰며, `kill -9` 뒤에도 확인 응답한 편집이 모두 남는다.
앱 라우트는 키 있는 리스트 앱에 무작위 POST(쿼리 필드와 본문을 가진 메시지, text, 키)와 GET(수, text, 표의 쪽)을
800번 보내 상태 코드·오류·본문·JSON 행이 파이썬 모델과 같고, 멈췄다 다시 띄워도, 여섯 클라이언트가 보내는 중에
-`kill -9`로 죽여도 확인 응답한 이벤트(약 4,200개)가 모두 남는다.
+`kill -9`로 죽여도 확인 응답한 이벤트(약 4,200개)가 모두 남는다. 한 스레드와 소유자 모드 모두 확인한다. 같은 서비스를
+axum·drogon으로 손수 쓴 것과의 비교는 [연구 077](../research/077-apps-as-http-services.md): 내구성 있는 쓰기 약 76배,
+읽기는 drogon과 같고 axum보다 빠르며(20행 JSON 145k/s 대 95k/s), CPU와 메모리가 가장 적다.
아직 모듈 앱을 런타임 코어의 효과 단위로 세분하지는 않았다(`runtime.c`의 `definition`은 앱 전체다). 호스트가 직접 호출한다.