Compilador de optimización de Chrome V8
¿Todavía hay una diferencia entre monomorfismo, polimorfismo y megamorfismo en velocidad, o ya no?
Monomorphism => [{a:47}, {a:5}, {a:9}]; Polymorphism => [{a:1, b:65}, {c:22, a:57, d:8},{e:14, a:819}]; ...(Desarrollador V8 aquí.)
Sí, y es seguro asumir que siempre habrá.
Lo que es mucho más difícil de decir es si es importante para su aplicación. Por ejemplo, depende de lo que estés haciendo. Poner diferentes tipos de objetos en una matriz no hace ninguna diferencia; solo accediendo a las propiedades de esos objetos después se encuentra con el concepto de polimorfismo (por ejemplo, si tiene for (let o of array) { oa = 42; } en otro lugar -- a la matriz no le importa, la parte oa sí).
Además, un efecto que es claramente visible en un micropunto de referencia podría afectar solo a una gran aplicación del mundo real dentro del rango de ruido (digamos, 1% o menos). Por lo tanto, generalmente no vale la pena preocuparse por esto, a menos que tenga una razón específica (como: resultados de perfiles) para creer que puede ser un problema en su caso.