Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015uTVHHDv583hbLQAFeBmd9
4.1 KiB
4.1 KiB
PLAN 616 · 620 이관 — 급경사 · 0차곡 첫 계산 빠르게 · B06 관 옵션 칸 까닭 분석(요구 497 · 529)
616 급경사 · 0차곡 첫 계산 빠르게 (요구 497 · 529 승인 · 진행)
- 근거:
docs/raw/요구_1025/_분석_497_급경사_0차곡_속도.md— 급경사 = 이미 빠름(처음 0.20.7 s · 화면 0.75 s) · 0차곡 = 범위 바뀐 첫 번만 느림(D 3.5 s · 용화 11.9 s · 둘째 0.30.5 s) · 옛 지형 프로젝트(10-30 21:55 앞 받음)는 창고 안 씀 → 미리 계산 끝나도 안 빨라짐 · 0차곡 첫 셈이 서버 한 프로세스를 붙잡아 급경사 0.2 → 2.6 s · 화면 쪽 느림 없음. - 616-1 0차곡 셈 = 창고 격자에서(옛 격자 갈래 걷음 ·
D03_PlanAnalysis_ZeroOrder.py:218 · 293) — 확인 = 용화 11.9 → 약 3.7 s · 결과 선 전후 대조- 검증완료 — 용화(창고 격자) 4,585 / 4,584 가닥 · 230.89 / 230.84 km · 검증 D(옛 격자 통째 15.0 s) 5,619 / 5,650 가닥(−0.5 %) · 273.1 / 277.9 km(−1.7 % · 창고 지형 대 사업 laplace 원천 차) · 누적 열쇠 판 그대로(전국 누적 다시 셈 없음) · 파생 판 3 (
66f9c68a1)
- 검증완료 — 용화(창고 격자) 4,585 / 4,584 가닥 · 230.89 / 230.84 km · 검증 D(옛 격자 통째 15.0 s) 5,619 / 5,650 가닥(−0.5 %) · 273.1 / 277.9 km(−1.7 % · 창고 지형 대 사업 laplace 원천 차) · 누적 열쇠 판 그대로(전국 누적 다시 셈 없음) · 파생 판 3 (
- 616-2 0차곡 선을 도엽마다 미리 뽑아 창고에(
zero_lines_<epsg>) · 요청 = 이어 붙여 자름 · 전국 미리 계산 단계에 덧 — 확인 = 선 뽑기 1.9 s → 0.1~0.3 s- 검증완료 — 용화 둘레 100 도엽 zero_lines(일꾼 3 · 155 s · 장당 가운데 4.8 s · 29 KB → 전국 약 0.4 GB) · 함수 용화 0.18 s · D 0.24~0.29 s · HTTP 0차곡 첫 번 용화 0.41 · D 0.61 s · 둘째 0.30 · 0.41 s · 기본 임계는 파생 저장본 안 씀 · 시험 = 도엽 선 이어 붙임 대 상자 통째 1 % 안 · 겹침 0 (
66f9c68a1) - 쓰는 법 — 전국 =
tools/precompute_terrain.py --steps zero_lines --workers N(두 PC zero 단계 다 끝난 뒤 · 이웃 누적 없으면 그 이웃 빼고 셈 · 나중에 이웃 누적이 생기면 요청 때 일꾼이 그 도엽 선 다시)
- 검증완료 — 용화 둘레 100 도엽 zero_lines(일꾼 3 · 155 s · 장당 가운데 4.8 s · 29 KB → 전국 약 0.4 GB) · 함수 용화 0.18 s · D 0.24~0.29 s · HTTP 0차곡 첫 번 용화 0.41 · D 0.61 s · 둘째 0.30 · 0.41 s · 기본 임계는 파생 저장본 안 씀 · 시험 = 도엽 선 이어 붙임 대 상자 통째 1 % 안 · 겹침 0 (
- 616-3 무거운 첫 셈을 서버 본체 밖(프로세스 풀) — 확인 = 0차곡 계산 중 급경사 요청 2.6 → 0.2 s
- 검증완료 — 0차곡 일꾼 셈(임계 1003 · 5.06 s) 도중 급경사 0.23 · 0.09 · 0.07 · 0.10 s · 일꾼 하나 113 MB(main.py 안 읽음) · 일꾼 죽임 → 다음 요청 새로 띄움(6.6 s) · 서버 다시 켬 → 옛 일꾼 따라 끝남 · 급경사 첫 셈은 스레드 그대로(0.2~0.7 s · numpy · PIL 이 GIL 놓음 · 일꾼에 0차곡 뒤 줄 서면 더 느림) (
5d6d7bbb8)
- 검증완료 — 0차곡 일꾼 셈(임계 1003 · 5.06 s) 도중 급경사 0.23 · 0.09 · 0.07 · 0.10 s · 일꾼 하나 113 MB(main.py 안 읽음) · 일꾼 죽임 → 다음 요청 새로 띄움(6.6 s) · 서버 다시 켬 → 옛 일꾼 따라 끝남 · 급경사 첫 셈은 스레드 그대로(0.2~0.7 s · numpy · PIL 이 GIL 놓음 · 일꾼에 0차곡 뒤 줄 서면 더 느림) (
- 616-4 급경사 칠하기 = 기다림 없는 길(toBlob 대신) · 값 그림 바이너리 — 확인 = 최대 1 s 대기 없음 · 전송 −23 %
- 검증완료 — 멈춘 화면 범위 [적용] 다시 칠함 158~197 ms(옛 toBlob 최대 1,046 ms) · 급경사 응답 = PNG 바이트 용화 1.81 MB · D 2.50 MB(옛 base64 JSON 본문 −25 % · 전송은 PNG 가 이미 압축이라 옛 gzip JSON 과 거의 같음 −1 % · 「−23 %」는 base64 를 gzip 이 되돌린 몫) · 서버 gzip 0.1 s 덜 · 칸 수 4,432,752 서버와 같음 · ORCA 검증_sub2_D 급경사 · 0차곡 5,619 가닥 보임 · 시험 608 · 612 · 617-1 · 618 · 584-1 · 616 51 통과 · 569-1 · 581-1 19 통과 · typecheck 0 (
5d6d7bbb8) - 이음 —
GET …/plan/layers/raster?kind=slope=image/png+ 머리X-Plan-Raster(JSON · counts · box · box_m · width · height) ·fetchPlanRaster가image= blob 주소로 돌려줌(겉 꼴 그대로) · 음영기복 · 산사태 = JSON 그대로
- 검증완료 — 멈춘 화면 범위 [적용] 다시 칠함 158~197 ms(옛 toBlob 최대 1,046 ms) · 급경사 응답 = PNG 바이트 용화 1.81 MB · D 2.50 MB(옛 base64 JSON 본문 −25 % · 전송은 PNG 가 이미 압축이라 옛 gzip JSON 과 거의 같음 −1 % · 「−23 %」는 base64 를 gzip 이 되돌린 몫) · 서버 gzip 0.1 s 덜 · 칸 수 4,432,752 서버와 같음 · ORCA 검증_sub2_D 급경사 · 0차곡 5,619 가닥 보임 · 시험 608 · 612 · 617-1 · 618 · 584-1 · 616 51 통과 · 569-1 · 581-1 19 통과 · typecheck 0 (
- 뒤로: 0차곡 · 급경사 보는 화면 조각(넓은 범위용) = 615 전후 결과 보고 정함.