1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# 038 — 준비된 한 앱을 CLI와 HTTP 경계에서 실행하기
2026-09-24. [037](037-build-time-prepared-runner.md)의 빌드 시 준비 경로를
같은 문서 앱의 HTTP 호스트까지 확장했다. `pure-connections-fixed`는
`editor.pure`에서 준비한 정적 `PureProgram`을 기존 실행 코어·파일 저장소와
연결한다. 외부 HTTP 형식은 어댑터에서 처리하고, 실행 코어에 HTTP 타입이나
파서를 넣지 않았다. 소스 작성용 `pure-connections`는 그대로 남는다.
| Linux AArch64/GCC 14 `-O2` 구성 | 링크된 `text` | 직접 공유 의존성 |
|---|---:|---|
| 소스 정의 HTTP 호스트 | 43,009 B | libc |
| 고정 정의 HTTP 호스트 | **25,228 B** | libc |
같은 문서 기능의 호스트 실행물에서 파서 분리로 **17,781 B(41.3%)**를
줄였다. 실행기 구조체도 41,528→40,848 B로 680 B 작아졌는데, 이는
소스 호스트에 있던 `PureProgram` 인스턴스를 정적 상수로 공유한 결과다.
[두 프로필의 코드·직접 의존성](../../prototypes/connections/results/2026-09-24-fixed-http/source-profile.json),
[고정 호스트의 26 KiB 회귀 상한](../../prototypes/connections/results/2026-09-24-fixed-http/fixed-profile.json).
압축 크기나 코드 섹션만으로 프로세스 메모리·네트워크 성능 향상을 주장하지 않는다.
[실제 HTTP·CLI 교차 검사](../../prototypes/connections/results/2026-09-24-fixed-http/verified.json)에서는
고정 HTTP로 만든 문서를 소스 HTTP가 읽고, 소스 HTTP의 수정을 고정 HTTP가
읽었다. 오래된 버전과 잘못된 수정 범위를 양쪽에서 거절했고, 고정 HTTP에서
1 MiB 문서를 생성한 뒤 소스 HTTP·고정 CLI가 같은 바이트를 읽었다.
CLI에서 끝 1 B를 수정한 뒤 양쪽 HTTP가 새 버전을 복원했다. 고정 HTTP
실행물에는 `pure_program_parse`·`pure_program_load` 심볼이 없다.
같은 검사에서 느린 클라이언트가 1 MiB 응답을 한 바이트만 받은 동안,
1 MiB 보유 예산 아래의 다른 읽기는 거절됐다. 첫 응답을 끝까지 소비하자
다음 요청이 성공했고, 종료 시 보유량과 활성 작업은 모두 0이었다.
이것은 응답 버퍼의 수명·예산·회수 검증이며 Kitex급 처리량을 증명하지 않는다.
한 번 실행의 프로세스 RSS 표본은 고정 HTTP 유휴 1,520 KiB, 소스 HTTP
유휴 1,552 KiB였다. 1 MiB 문서 작업 후 각각 1,648/1,680 KiB였다.
고정 HTTP의 이 작업 중 최고 RSS는 2,128 KiB로 **4 MiB 회귀 상한**을
통과했다. 소스 HTTP와의 작은 RSS 차이를 안정적인 RAM 이점으로 단정하지
않는다. 이 상한은 단일 1 MiB 작업과 위 느린 수신자 흐름에 적용되며,
동시 다중 클라이언트 전체 피크의 보증이 아니다.
[CLI+HTTP 묶음](../../prototypes/connections/results/2026-09-24-fixed-http/pure-document-fixed-http-linux-aarch64.tar.gz)은
31,733 B이고 libc 외 공유 라이브러리를 묶지 않는다.
[다른 디렉터리에서 해제·동작 검사](../../prototypes/connections/results/2026-09-24-fixed-http/package.json)는
패키지의 두 호스트가 같은 저장 파일을 수정·복원함을 확인했다. 소스 정의나
컴파일러가 들어 있지 않아 실행 중 앱을 다시 작성할 수 없다. 기존 소스·HTTP
패키지도 변경된 검사기로 재검증했다. 내부 Pure 피어의 TLS·정의 일치,
macOS 빌드, 다중 앱·대규모 서비스는 이 결과의 범위 밖이다.
재현 명령은 `make -C prototypes/connections fixed-editor fixed-server
check-fixed-profile check-fixed-server`,
`python3 prototypes/connections/package_native.py --fixed --with-http --output
/tmp/pure-fixed-http.tar.gz`, `python3 prototypes/connections/check_package.py
/tmp/pure-fixed-http.tar.gz`다.
|