이 저장소는 실험 데이터(구성 샘플, 대상 시스템 코드) 및 측정(성능, 옵션 및 작업 부하별 코드 적용 범위)을 포함하여 ICSE 2023 논문 "구성 가능한 소프트웨어 시스템의 성능 모델링에 대한 작업 부하의 영향 분석"에 대한 보충 자료를 제공합니다. ) 및 대화형 대시보드도 있습니다. 후자는 연구 결과를 논문에 제시하는 것을 보완하고 우리의 분석과 결과를 재현할 수 있게 해줍니다.
이 자료에는 다음 9가지 소프트웨어 시스템에 대한 정보가 포함되어 있습니다.
이름 | 도메인 | 언어 | 저장소 | 사용된 코드 / 버전 | 특허 |
---|---|---|---|---|---|
jump3r | 오디오 인코더 | 자바 | Link | v1.0.4 | LGPL 2.1 |
kanzi | 파일 압축기 | 자바 | Link | v1.9 | 아파치 라이선스 2.0 |
dconvert | 이미지 크기 조정 | 자바 | Link | v1.0.0.-alpha7 | 아파치 라이선스 2.0 |
h2 | 데이터 베이스 | 자바 | Link | v1.4.200 | Mozilla 공개 라이센스 버전 2.0 |
batik | SVG 래스터라이저 | 자바 | Link | v.1.14 | 아파치 라이선스 2.0 |
xz | 파일 압축기 | C/C++ | Link | v5.2.0 | GPL 2.0 및 GPL 3.0 |
lrzip | 파일 압축기 | C/C++ | Link | v0.651 | GPL 2.0 |
x264 | 비디오 인코더 | C/C++ | Link | baee400.. | GPL 2.0 |
z3 | SMT 솔버 | C/C++ | Link | v4.8.14 | MIT 라이센스 |
이 아카이브에는 실험을 수행하는 데 샘플링되고 사용되는 구성이 CSV 파일로 포함되어 있습니다.
data/coverage_raw.tar.gz
실험에서 작업 부하/입력으로 사용된 파일은 다양한 소스에서 수집되었습니다. 우리는 다음 위치에서 파일 출처 목록을 제공합니다.
data/workload_sources.csv
라이센스(LICENSE.txt)를 준수합니다. 사용된 모든 파일이 CC BY-SA 4.0 라이센스에 따라 재배포를 허용하는 것은 아니기 때문에 이 아카이브에는 사용된 전체 파일 세트가 포함되어 있지 않습니다.
이 아카이브에는 구성 및 워크로드별 성능 측정(처리량 및 실행 시간)이 CSV 파일로 포함되어 있습니다. 각 <software system>
에 대한 성능 측정은 다음 하위 폴더에서 찾을 수 있습니다.
dashboard/resources/<software_system>/measurements.csv
이 아카이브에는 구성별 원시 적용 범위 측정값과 작업 부하가 CSV 파일로 포함되어 있습니다(별도의 파일로!). 이러한 파일을 기반으로 옵션 및 워크로드별 코드가 유추됩니다. 원시 코드 적용 범위 측정은 gz-ipped tar 아카이브에서 찾을 수 있습니다.
./coverage_raw.tar.gz
이 아카이브에는 a) 옵션별, b) 작업 부하 및 옵션별 계산된 코드 섹션이 포함되어 있습니다. 각 <software system>
의 코드 섹션은 다음 하위 폴더에서 찾을 수 있습니다.
dashboard/resources/<software_system>/code/
우리는 각 구성 옵션과 워크로드에 대한 분석을 자세히 살펴볼 수 있는 스트림릿 streamlit
워드를 사용하는 대화형 대시보드를 제공합니다. 원본 논문은 결과의 대표적인 하위 집합을 제시하며, 이 대시보드를 사용하여 모든 분석 및 시각화를 재현할 수 있습니다. 우리는 대시보드를 로컬에서 실행할 수 있도록 Docker화된 버전을 제공합니다.
Docker 컨테이너를 빌드하고 실행하려면 다음 명령을 실행하십시오.
#!/bin/sh
cd ./dashboard
docker build -t streamlitapp:latest .
docker run -p 8501:8501 streamlitapp:latest
이제 https://127.0.0.1:8501 또는 https://localhost:8501에서 로컬로 실행되는 대시보드를 탐색할 수 있습니다.
Docker화된 애플리케이션을 사용하려면 컨테이너 환경인 Docker를 설정하고 실행해야 합니다. Docker를 설치하기 위해 다음 튜토리얼에서는 방향을 제공합니다.