ethereal vs @floating-ui
+
+ Comparativa en vivo sobre tu máquina. Verde = ethereal (motor
+ propio, síncrono). Magenta = @floating-ui (async). En modo
+ Ambos las cajas se superponen: si el output es idéntico, no se separan.
+
Benchmark de cómputo puro
+40 000 iteraciones de la cadena, math sola (CPU). Sin DOM. En tu CPU.
++ {bench.speedup}× más rápido el motor propio (síncrono vs el async de + floating-ui). +
+ {/if} +Cómo leerlo
+-
+
-
+ Corrección — en Ambos, Δ máx ≈
0.00px: el output es + idéntico bit a bit (verificado además por 487 tests de paridad). +
+ -
+ Velocidad — el motor propio es síncrono; floating-ui envuelve cada lectura
+ y middleware en un
await. Esa maquinaria async cuesta: ~1.5–2.3× en CPU. +
+ -
+ Fluidez — sube los elementos y alterna el motor con Animar on. JS
+ es mono-hilo: ambos serializan (el async no paraleliza). Pero el motor propio
+ coalesce sus lecturas en un
dom.measure→ 1 reflow; floating-ui lee síncrono por + elemento → puede provocar thrashing de layout con muchos overlays. +
+ -
+ El precio honesto — el motor propio posiciona en el siguiente
+
rAF(+1 frame de latencia), deliberado para no forzar reflow. Imperceptible al + abrir; alineado al frame durante scroll. +
+