Este repositório fornece material complementar ao artigo ICSE 2023 "Analyzing the Impact of Workloads on Modeling the Performance of Configurable Software Systems", incluindo dados experimentais (amostras de configuração, código do sistema em questão) e medições (desempenho, cobertura de código específico de opção e carga de trabalho ), bem como um painel interativo. Este último complementa a apresentação dos resultados do estudo no artigo e permite a reprodução de nossas análises e resultados.
O material inclui informações sobre os nove sistemas de software a seguir:
Nome | Domínio | Linguagem | Repositório | Código usado/versão | Licença |
---|---|---|---|---|---|
jump3r | Codificador de áudio | Java | Link | v1.0.4 | LGPL2.1 |
kanzi | Compressor de arquivo | Java | Link | v1.9 | Licença Apache 2.0 |
dconvert | Dimensionamento de imagem | Java | Link | v1.0.0.-alpha7 | Licença Apache 2.0 |
h2 | Banco de dados | Java | Link | v1.4.200 | Licença Pública Mozilla versão 2.0 |
batik | Rasterizador SVG | Java | Link | v.1.14 | Licença Apache 2.0 |
xz | Compressor de arquivos | C/C++ | Link | v5.2.0 | GPL 2.0 e GPL 3.0 |
lrzip | Compressor de arquivo | C/C++ | Link | v0.651 | GPL2.0 |
x264 | Codificador de vídeo | C/C++ | Link | baee400.. | GPL2.0 |
z3 | Solucionador SMT | C/C++ | Link | v4.8.14 | Licença MIT |
Este arquivo inclui as configurações amostradas e usadas para conduzir os experimentos como arquivos CSV:
data/coverage_raw.tar.gz
Os arquivos usados como cargas de trabalho/entradas nos experimentos foram coletados de diversas fontes. Fornecemos uma lista da procedência dos arquivos em:
data/workload_sources.csv
Em conformidade com a licença (LICENSE.txt). Este arquivo não inclui o conjunto completo de arquivos usados porque nem todos os arquivos usados permitem redistribuição sob a licença CC BY-SA 4.0.
Este arquivo inclui as medidas de desempenho (taxa de transferência e tempo de execução) por configuração e carga de trabalho como arquivos CSV. As medidas de desempenho para cada <software system>
podem ser encontradas na seguinte subpasta:
dashboard/resources/<software_system>/measurements.csv
Este arquivo inclui (como um arquivo separado!) medições de cobertura bruta por configuração e carga de trabalho como arquivos CSV. Com base nesses arquivos, o código específico da opção e da carga de trabalho é inferido. As medidas de cobertura de código bruto podem ser encontradas como um arquivo tar gz-ipped:
./coverage_raw.tar.gz
Este arquivo inclui as seções de código calculado que são a) específicas da opção eb) específicas da carga de trabalho e da opção. As seções de código para cada <software system>
podem ser encontradas na seguinte subpasta:
dashboard/resources/<software_system>/code/
Fornecemos um painel interativo usando o frameword streamlit
que permite explorar detalhadamente nossa análise para cada opção de configuração e carga de trabalho. O artigo original apresenta um subconjunto representativo dos resultados, todas as análises e visualizações podem ser reproduzidas usando este painel. Fornecemos uma versão Dockerizada para executar o painel localmente.
Para construir e executar o contêiner Docker, execute os seguintes comandos:
#!/bin/sh
cd ./dashboard
docker build -t streamlitapp:latest .
docker run -p 8501:8501 streamlitapp:latest
Agora você pode explorar o painel em execução localmente em https://127.0.0.1:8501 ou https://localhost:8501.
Para usar o aplicativo dockerizado, o ambiente de contêiner Docker deve estar configurado e em execução. Para instalar o Docker, estes tutoriais fornecem orientação: