본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 05. 25. 12:21

JEDI: 선언적 및 명령형 쿼리의 Java 평가

요약

Java Stream API의 성능을 분석하기 위한 새로운 벤치마크 제품군인 JEDI를 제안합니다. SQL 벤치마크를 기반으로 선언적 및 명령형 구현체를 자동 생성하여, 데이터 특성에 따른 최적의 병렬화 전략과 모범 사례를 제시합니다.

핵심 포인트

  • Java Stream API 전용 벤치마크 제품군 JEDI 제안
  • SQL 벤치마크를 Java 코드로 자동 변환하는 생성기 개발
  • 선언적 및 명령형 구현체 간의 성능 비교 분석
  • 데이터 특성에 따른 최적의 병렬화 전략 가이드 제공

Java Stream API는 계산을 표현하기 위한 읽기 쉬운 선언적 구문 (declarative syntax) 덕분에 개발자의 생산성을 높이는 것을 목표로 합니다. 또한 공통적인 병렬화 측면 위에 고수준 추상화 (high-level abstraction)를 제공함으로써 병렬 컴퓨팅 (parallel computing)을 단순화합니다. 불행히도, 스트림 기반 애플리케이션을 구체적으로 겨냥한 벤치마크 (benchmarks)가 부족한 실정입니다. 이러한 벤치마크의 부재는 Java 클래스 라이브러리 연구자와 개발자들이 Stream API를 최적화하는 것을 어렵게 만듭니다. 더욱이, 전용 벤치마크가 없으면 스트림의 성능을 분석하여 개발자들에게 해당 API를 사용하여 효율적인 코드를 작성하는 방법을 제안하기가 어렵습니다. 본 연구에서는 Stream API를 대상으로 하는 벤치마크 제품군인 JEDI를 제시합니다. JEDI는 SQL 벤치마크를 Java 벤치마크로 변환함으로써 자동으로 생성됩니다. 우리의 코드 생성기 (code generator)는 동일한 쿼리에 대해 서로 다른 구현체(스트림 기반 및 명령형 모두 포함)를 지원합니다. 우리 벤치마크 제품군의 궁극적인 목표이자 본 연구의 주요 기여는, 다양한 구현체의 성능을 분석하여 비효율적인 코드 구조와 더 나은 대안을 찾아내고, Java 개발자들에게 모범 사례 (best practices)를 제안하는 것입니다. 우리가 생성하는 여러 구현체 중에서, 우리는 다양한 병렬화 전략 (parallelization strategies)에 초점을 맞추며, 처리되는 데이터의 특성에 기반하여 가장 효율적인 병렬화 전략이 무엇인지 설명합니다. 마지막으로, 명령형 코드 (imperative code)를 생성하는 코드 생성은 연구자와 Java 구현자들이 Stream API를 최적화할 수 있도록 안내하는 기준점 (baseline)을 정의합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0