Llevando la compilación JIT al EVM La compilación Just-in-Time (JIT) se cita frecuentemente como una idea interesante para optimizar el EVM. Pero hay desafíos: - es difícil hacer que todo el comportamiento exacto (cargos de gas, manejo de errores) coincida. Por ejemplo, incluso si el código es simplificado por el compilador, los cargos de gas originales deben ser preservados. - la compilación es costosa, por lo que no todo debe ser compilado, y no se puede hacer al vuelo sin afectar la latencia. - los artefactos compilados son mucho más grandes que el bytecode original. - obtener el máximo provecho del compilador requiere creatividad para abordar facetas únicas del problema. Se requiere una gran cantidad de investigación, evaluación comparativa y optimización repetida de la generación de código máquina. El equipo de @category_xyz superó estos obstáculos y construyó un potente compilador que aborda todos estos problemas, permitiendo que el código de contrato se ejecute más rápido y de manera más eficiente que en las implementaciones existentes del EVM. El cliente Monad analiza los contratos utilizados con frecuencia (medidos por el gas acumulado consumido) y almacena en caché el código nativo para que las llamadas subsiguientes se ejecuten de manera más eficiente. La compilación se ejecuta de forma asíncrona; antes de que la compilación haya terminado, la VM ejecuta el código utilizando un intérprete separado de baja latencia y altamente optimizado. ¡Esto ya está activo en Monad Testnet desde la actualización del martes! Consulta la documentación para obtener información adicional, recién salida de la imprenta. ¡Gracias a @__inshorts y al resto del equipo de compiladores en Category Labs por un trabajo bien hecho!
64,08K