ERPG Dice / Benchmarks

Dice Core, sob a lente.

Compare recursos e velocidade de rolagens completas nas mesmas expressões. Cada taxa vem de um teste reproduzível com limites explícitos.

5cenários equivalentes de velocidade do Core
4APIs de sistemas de RPG no Dice Core

Nos cinco cenários simples de velocidade, as bibliotecas comparadas foram mais rápidas. O número acima é uma mediana medida, não uma alegação de liderança de mercado. Resultados e limites abaixo.

01 / Recursos

Mais que um número no gráfico.

Dice Core une notação expressiva a resultados de sistemas e a um journal de eventos estruturado. A tabela compara APIs documentadas sem tratar contratos diferentes como equivalentes.

Dice Core

Motores de regras, lado a lado

Explorar API do Core ↗
RecursoDice Core v3.7.1RPG Dice Roller ↗RANDSUM ↗Dice Roller Parser ↗
NotaçãoExpressões avançadas e APIs para quatro sistemasNotação extensa de dadosRDN nível 4; 19 modificadoresNotação no estilo Roll20
Fonte aleatóriaCrypto por padrão; seed e replay vinculado ao planoMath.random padrão; crypto ou MT com seed configuráveisrandomFn próprio para RNG com seed ou cryptoMath.random padrão; função aleatória injetável
Contrato do resultadoDados, grupos, journal de eventos e metadados de replayResultados e histórico de rolagensDados iniciais e finais com descriçõesObjeto de resultado e API de parsing separada

A coluna do Core descreve a v3.7.1. As descrições dos concorrentes vêm de suas APIs públicas e podem evoluir independentemente das versões fixadas no teste de velocidade.

02 / Dice Core · Velocidade

Mesmas regras. Velocidade medida.

Cada operação chama a API pública com a mesma expressão e lê o total. Caches internos permanecem ativos. Maior é mais rápido; as barras usam a mesma escala dentro de cada cenário.

1d20

Um d20

7 amostras, iterações calibradas por pacote
  1. @erpg/dicecore9.180 rolagens / amostra27.853 ops/s
  2. @dice-roller/rpg-dice-roller23.642 rolagens / amostra154.642 ops/s
  3. @randsum/roller27.926 rolagens / amostra108.360 ops/s
  4. dice-roller-parser84.289 rolagens / amostra317.270 ops/s
2d6+3

Dois dados e modificador

7 amostras, iterações calibradas por pacote
  1. @erpg/dicecore7.637 rolagens / amostra25.175 ops/s
  2. @dice-roller/rpg-dice-roller20.275 rolagens / amostra76.302 ops/s
  3. @randsum/roller8.811 rolagens / amostra41.482 ops/s
  4. dice-roller-parser35.650 rolagens / amostra200.771 ops/s
4d6kh3

Os três maiores de quatro

7 amostras, iterações calibradas por pacote
  1. @erpg/dicecore6.375 rolagens / amostra20.177 ops/s
  2. @dice-roller/rpg-dice-roller28.711 rolagens / amostra110.317 ops/s
  3. @randsum/roller11.530 rolagens / amostra32.240 ops/s
  4. dice-roller-parser48.629 rolagens / amostra196.802 ops/s

RANDSUM usa a sintaxe equivalente 4d6L para descartar o menor dado.

10d6

Dez dados

7 amostras, iterações calibradas por pacote
  1. @erpg/dicecore6.401 rolagens / amostra23.561 ops/s
  2. @dice-roller/rpg-dice-roller53.606 rolagens / amostra162.339 ops/s
  3. @randsum/roller26.157 rolagens / amostra104.461 ops/s
  4. dice-roller-parser64.267 rolagens / amostra246.363 ops/s
3d8+2d6

Dados de tamanhos diferentes

7 amostras, iterações calibradas por pacote
  1. @erpg/dicecore7.363 rolagens / amostra25.300 ops/s
  2. @dice-roller/rpg-dice-roller25.487 rolagens / amostra82.256 ops/s
  3. @randsum/roller14.164 rolagens / amostra61.013 ops/s
  4. dice-roller-parser28.219 rolagens / amostra148.960 ops/s

Medido em 24 de setembro de 2026 · AMD Ryzen 5 5500 · Node.js v24.18.0 · win32 10.0.26200 (x64)

03 / Método

Um teste que você pode repetir.

Fixamos as versões e testamos apenas notações compreendidas por todos os motores. Cada cenário passou por aquecimento, checagem de resultados válidos e sete medições. As iterações foram calibradas por pacote para cerca de 250 ms por amostra. A mediana é o número publicado.

Rode você mesmo

cd scripts/benchmarks
npm ci
npm run bench

O comando reescreve results.json. A medição das rolagens não usa rede, GPU nem navegador.

Baixar dados brutos ↗

04 / Dice Core

Dois outros fluxos do Core.

Estes experimentos separados mostram como compilação e fonte aleatória afetam a mesma rolagem 4d6kh3. Eles não entram no ranking de mercado porque mudam a operação ou a aleatoriedade.

28.094 ops/s

Plano pré-compilado

Compila 4d6kh3 fora do trecho cronometrado; executa o plano com a fonte aleatória padrão.

96.121 ops/s

Seed fixa, xoshiro128ss

Usa a expressão em cache e evita obter uma nova seed criptográfica. A seed é repetida: o resultado é determinístico, sem sorteios independentes.

05 / Como interpretar

O que a velocidade não conta.

O resultado completo do Dice Core inclui dados estruturados, grupos, histórico de eventos e metadados de replay. Os pacotes comparados retornam objetos diferentes. Dice Core usa cache para uma notação repetida após aquecimento. O teste usa a API padrão de cada pacote e lê só o total; não equaliza profundidade dos resultados, cache, recursos nem custo das fontes aleatórias.

Medido

Chamadas repetidas às APIs públicas de rolagem em Node.js para cinco expressões comuns e limitadas.

Fora do teste

Navegador, carregamento do pacote, memória, rolagens grandes ou explosivas, regras específicas de sistemas e frames 3D do Dice View.

Fontes aleatórias diferentes

Dice Core usa crypto.getRandomValues por padrão. Cada pacote comparado usa seu próprio padrão. Isso afeta o tempo.

Dice Core sustentou dezenas de milhares de rolagens completas por segundo aqui, enquanto as três bibliotecas comparadas lideraram estes testes básicos de velocidade. Escolha um motor pelas regras, pelo resultado e pela integração que seu jogo exige.

06 / Fontes

Versões e referências das APIs

Documentação dos recursos

O método completo e a implementação estão em scripts/benchmarks/README.md e benchmark.mjs no repositório deste site.