성능 선택
최신 안정판 Image 0.3.0 릴리스 기준
저장소 벤치마크는 Scrimage와 libvips 연산, I/O 경계, 스트리밍, 동시 실행, 메모리를 비교한다. 어느 환경에서나 통하는 순위표가 아니라 가설을 세우는 자료로 사용한다.
작업에 맞춰 측정하기
섹션 제목: “작업에 맞춰 측정하기”디코딩, 변환, 인코딩, 파일 읽기와 쓰기, 네트워크 전송, 대기열에서 기다리는 시간을 나눠 본다. 리사이즈 커널이 빨라도 객체 저장소나 인코딩이 대부분을 차지하는 요청은 빨라지지 않을 수 있다. 실제 이미지 크기, 코덱, 품질, 연산 순서, 동시 실행 수를 사용한다.
Benchmark 행 읽기
섹션 제목: “Benchmark 행 읽기”지표의 방향을 먼저 확인한다. 평균 지연 시간은 낮을수록 좋고 처리량은 높을수록 좋다. JDK, 백엔드, 테스트 이미지, 워밍업, 반복 횟수와 GC/네이티브 메모리 포함 여부를 함께 본다. 0.3.0 보고서에는 리사이즈, 인코딩, 필터, 처리 과정의 할당량, I/O 경계, 파일 처리량, 대용량 스트리밍과 메모리 자료가 있다.
운영 예산 정하기
섹션 제목: “운영 예산 정하기”다음을 수치로 기록한다.
- 최대 입력 바이트와 디코딩할 픽셀 수
- 지연 시간 백분위수와 처리량 목표
- JVM 힙과 네이티브 메모리 제한
- OCR 또는 네이티브 연산의 최대 동시 실행 수
- 출력 품질과 크기 조건
이후 저장소와 프레임워크 비용까지 포함한 서비스 수준 테스트를 실행한다. Scrimage가 목표를 만족하면 배포가 단순하다는 장점이 네이티브 커널의 시간 차이보다 클 수 있다. 만족하지 못할 때 실제 실행 환경에서 libvips 백엔드 하나를 검증한다.
Java 25 FFM 결과를 Java 21 JNI에 그대로 적용하거나 자연 사진 결과를 문서와 alpha가 많은 그래픽에 확대 해석하면 안 된다. 벤치마크 결과 해석에서 보고서 읽는 법을 이어서 설명한다.