58 lines
3.2 KiB
Markdown
58 lines
3.2 KiB
Markdown
# Relatório de Desempenho e Benchmarks — CyberCore Signer
|
|
|
|
Este documento consolida as medições empíricas de tempo de inicialização, pegada de memória (Resident Set Size - RSS) e latência de operações criptográficas (enumeração e assinatura digital PAdES com selo visual) no agente desktop.
|
|
|
|
---
|
|
|
|
## 1. Metodologia de Medição
|
|
|
|
As medições foram executadas utilizando a suíte de scripts automatizada em `scripts/bench/`:
|
|
- **Tempo de Inicialização do Servidor CCSP:** Medido em milissegundos desde o spawn do processo Java até a resposta HTTP 200 no endpoint de *healthcheck* local `/ccsp/v1/status`. Média aritmética de 3 execuções consecutivas.
|
|
- **Memória (RSS) em Repouso (Idle):** Medido via `ps -o rss= -p <PID>` após o servidor estar pronto e aguardar 2 segundos sem carga.
|
|
- **Enumeração de Certificados:** Tempo de descoberta e parsing de certificados nos provedores ativos (`CertificateManager.discoverCertificates()`).
|
|
- **Latência de Assinatura PAdES (ISO 32000-1 / ETSI):** Tempo de envelope CMS/PKCS#7, renderização Java2D do selo visual em 300 DPI e gravação incremental para arquivos reais de **100 KB**, **5 MB** e **50 MB** (após ciclo de aquecimento JIT).
|
|
|
|
### Ambiente de Teste
|
|
- **Sistema Operacional:** Linux x86_64 (Kernel 6.6+)
|
|
- **Runtime Java:** OpenJDK 25 LTS (build 25.0.4.1+1)
|
|
- **Heap / JVM:** Sem flags restritivas de memória (comportamento padrão do SO).
|
|
|
|
---
|
|
|
|
## 2. Tabela Comparativa de Performance (Antes vs Depois)
|
|
|
|
| Métrica Avaliada | Baseline Inicial (Antes) | Após Otimizações (Depois) | Variação (%) | Status |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| **Tempo de Inicialização CCSP** | 1.304 ms | *Em medição* | - | Em andamento |
|
|
| **Consumo de Memória (RSS Idle)** | 101,60 MB | *Em medição* | - | Em andamento |
|
|
| **Enumeração de Certificados A1/A3** | 23,26 ms | *Em medição* | - | Em andamento |
|
|
| **Assinatura PAdES — PDF 100 KB** | 120,06 ms | *Em medição* | - | Em andamento |
|
|
| **Assinatura PAdES — PDF 5 MB** | 438,19 ms | *Em medição* | - | Em andamento |
|
|
| **Assinatura PAdES — PDF 50 MB** | 1.796,38 ms | *Em medição* | - | Em andamento |
|
|
|
|
---
|
|
|
|
## 3. Detalhamento do Baseline Inicial
|
|
|
|
### 3.1 Inicialização e Memória em Repouso
|
|
- Execução 1: Startup = 1508 ms | RSS = 101.21 MB
|
|
- Execução 2: Startup = 1306 ms | RSS = 101.69 MB
|
|
- Execução 3: Startup = 1100 ms | RSS = 101.89 MB
|
|
- **Média de Startup:** **1.304 ms**
|
|
- **Média de RSS em Repouso:** **101,60 MB**
|
|
|
|
### 3.2 Latência de Operações Criptográficas
|
|
- **Enumeração de Certificados:** **23,26 ms**
|
|
- **Assinatura PAdES (PDF 100 KB):** **120,06 ms** (arquivo assinado final: 141 KB)
|
|
- **Assinatura PAdES (PDF 5 MB):** **438,19 ms** (arquivo assinado final: 5,04 MB)
|
|
- **Assinatura PAdES (PDF 50 MB):** **1.796,38 ms** (arquivo assinado final: 50,04 MB)
|
|
|
|
---
|
|
|
|
## 4. Roteiro de Otimizações
|
|
|
|
1. **Desacoplamento da UI:** Inicialização imediata do CCSP sem carregar o toolkit JavaFX no bootstrap principal.
|
|
2. **Streaming e RandomAccessRead:** Eliminação de buffers em heap para arquivos grandes via PDFBox 3.
|
|
3. **Detecção Adaptativa e Cache Sob Demanda:** Polling inteligente no `SmartCardWatcher` e cache com TTL no `CertificateManager`.
|
|
4. **Virtual Threads:** I/O não bloqueante no servidor local CCSP.
|