⚡ Bolt: 16진수 문자열 변환 성능 최적화#112
Conversation
루프 내에서 `String.format("%02x", b)`를 사용하는 방식은 느리고 많은 임시 객체를 생성하므로, Java 17+에서 지원하는 `java.util.HexFormat.of().formatHex(raw)`를 사용하도록 개선했습니다. 이를 통해 바이트 배열을 16진수 문자열로 변환하는 성능을 향상시켰습니다.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
루프 내에서 `String.format("%02x", b)`를 사용하는 방식은 느리고 많은 임시 객체를 생성하므로, Java 17+에서 지원하는 `java.util.HexFormat.of().formatHex(raw)`를 사용하도록 개선했습니다. 이를 통해 바이트 배열을 16진수 문자열로 변환하는 성능을 향상시켰습니다.
Additionally, upgraded `spring-boot-starter-parent` from 3.5.0 to 3.5.14 to fix OSV-Scanner and Trivy CI pipeline failures caused by resolving the vulnerable 3.5.0 version.
루프 내에서 `String.format("%02x", b)`를 사용하는 방식은 느리고 많은 임시 객체를 생성하므로, Java 17+에서 지원하는 `java.util.HexFormat.of().formatHex(raw)`를 사용하도록 개선했습니다. 이를 통해 바이트 배열을 16진수 문자열로 변환하는 성능을 향상시켰습니다.
Additionally, upgraded `spring-boot-starter-parent` from 3.5.0 to 3.5.3 to fix OSV-Scanner and Trivy CI pipeline failures caused by resolving the vulnerable 3.5.0 version.
Also upgraded `tika-parsers-standard-package` from 3.2.2 to 3.3.1 to fix vulnerabilities causing CI scanning failures.
💡 What:
루프 내에서
String.format("%02x", b)를 사용하는 방식을 Java 17+에서 지원하는java.util.HexFormat.of().formatHex(raw)를 사용하도록 개선했습니다. (DefaultDocumentConversionService.java및ArtifactLinkService.java)🎯 Why:
루프 내부에서
String.format을 호출하는 것은 매우 느리며, 포맷팅을 위해 많은 중간 객체를 생성합니다.HexFormat을 사용하면 변환을 더 효율적으로 수행하고 메모리 할당을 줄일 수 있습니다.📊 Impact:
바이트 배열에서 16진수 문자열로의 변환 속도 향상, 메모리 풋프린트 감소. 중간 문자열과 StringBuilder 할당을 피함으로써 가비지 컬렉션 부하를 감소시킵니다.
🔬 Measurement:
mvn test명령을 실행하여 문서 해싱과 아티팩트 링크 생성 기능이 기존과 완벽하게 동일하게 작동하는지 확인했습니다. 변경 사항에 대한 린트 검사(mvn -DskipTests checkstyle:check)도 통과했습니다.PR created automatically by Jules for task 3125906282739104898 started by @seonghobae