bench(union): banco de carga de la unión de suscripciones
Ejecuta el worker de producción contra suscripciones sintéticas realistas (península, Canarias, Baleares; radios de 5 a 100 km) y mide lo que la fase 12 pide: duración del recreate completo y del incrementalAdd, retraso máximo del event loop del proceso padre —que es donde vive DDP y por tanto la pregunta real de "¿se congela la web?"—, tamaño del documento frente al límite de 16 MiB y pico de RSS. `--spread world` reparte las suscripciones por todo el mundo: es el peor caso para el tamaño, porque casi no se solapan y la unión conserva un polígono por suscripción en vez de fundirlos. treeUnionWorker.js es una variante solo del banco (une en árbol en vez de en cadena) para poder comparar estrategias con números antes de tocar el worker de verdad. El worker de producción solo cambia en que ahora acepta `steps` por workerData, con el mismo 144 de siempre por defecto.
This commit is contained in:
parent
c92f25a9a6
commit
072e76aaed
4 changed files with 276 additions and 2 deletions
|
|
@ -32,12 +32,18 @@ const ttrunc = require(workerData.turfPaths.truncate).default;
|
|||
|
||||
const truncOptions = { precision: 6, coordinates: 2 };
|
||||
|
||||
// Vértices por círculo. 144 es lo que se ha venido usando; es también la
|
||||
// palanca más directa sobre el tamaño del documento y sobre lo que tarda la
|
||||
// cadena de uniones, así que el banco de carga (bench/union-bench.js) necesita
|
||||
// poder moverlo. Sin `steps` en workerData el comportamiento es el de siempre.
|
||||
const DEFAULT_STEPS = 144;
|
||||
|
||||
const run = () => {
|
||||
const { subs, baseUnion } = workerData;
|
||||
const { subs, baseUnion, steps } = workerData;
|
||||
const circles = subs.map(s => tcircle(
|
||||
[s.location.lon, s.location.lat],
|
||||
s.distance,
|
||||
{ units: 'kilometers', steps: 144 }
|
||||
{ units: 'kilometers', steps: steps || DEFAULT_STEPS }
|
||||
));
|
||||
|
||||
let unionTemp = baseUnion || null;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue