Files
cybercore-signer/docs/performance.md
T

3.2 KiB

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.