Saltar al contenido principal

36 publicaciones etiquetados con "internals"

Ver Todas las Etiquetas

Turboalimentando V8 con números mutables en el montón

· 6 min de lectura
[Victor Gomes](https://twitter.com/VictorBFG), el cambiador de bits

En V8, siempre estamos buscando mejorar el rendimiento de JavaScript. Como parte de este esfuerzo, recientemente volvimos a analizar el conjunto de pruebas de JetStream2 para eliminar caídas de rendimiento. Esta publicación detalla una optimización específica que realizamos y que generó una mejora significativa de 2.5x en la prueba de referencia async-fs, contribuyendo a un aumento notable en la puntuación general. La optimización se inspiró en el benchmark, pero este tipo de patrones también aparecen en código del mundo real.

Añadiendo seguridad temporal de memoria a C++

· 13 min de lectura
Anton Bikineev, Michael Lippautz ([@mlippautz](https://twitter.com/mlippautz)), Hannes Payer ([@PayerHannes](https://twitter.com/PayerHannes))
nota

Nota: Esta publicación fue publicada originalmente en el Blog de Seguridad de Google.

La seguridad de memoria en Chrome es un esfuerzo continuo para proteger a nuestros usuarios. Constantemente experimentamos con diferentes tecnologías para estar un paso adelante de los actores maliciosos. En este espíritu, esta publicación trata sobre nuestro camino usando tecnologías de análisis de heap para mejorar la seguridad de memoria de C++.

Inicialización más rápida de instancias con nuevas características de clase

· 14 min de lectura
[Joyee Cheung](https://twitter.com/JoyeeCheung), inicializador de instancias

Los campos de clase se implementaron en V8 desde la versión v7.2 y los métodos privados de clase se implementaron desde la versión v8.4. Después de que las propuestas alcanzaran el estadio 4 en 2021, comenzó el trabajo para mejorar el soporte de las nuevas características de clase en V8; hasta entonces, había dos problemas principales que afectaban su adopción:

Biblioteca Oilpan

· 7 min de lectura
Anton Bikineev, Omer Katz ([@omerktz](https://twitter.com/omerktz)), y Michael Lippautz ([@mlippautz](https://twitter.com/mlippautz)), movedores de archivos eficientes y efectivos

Aunque el título de esta publicación puede sugerir una inmersión profunda en una colección de libros sobre cárter de aceite – lo cual, considerando las normas de construcción para cárteres, es un tema sorprendentemente literario –, en su lugar vamos a mirar un poco más de cerca a Oilpan, un recolector de basura de C++ que se aloja a través de V8 como biblioteca desde la versión V8 v9.4.

Llamadas más rápidas en JavaScript

· 20 min de lectura
[Victor Gomes](https://twitter.com/VictorBFG), el destructor de marcos

JavaScript permite llamar a una función con un número de argumentos diferente al número esperado de parámetros; es decir, se pueden pasar menos o más argumentos de los parámetros formales declarados. El primer caso se llama subaplicación y el segundo se llama sobreaplicación.

Un motor adicional de RegExp sin retroceso

· 9 min de lectura
Martin Bidlingmaier

A partir de la versión v8.8, V8 incluye un nuevo motor experimental de RegExp sin retroceso (además del existente motor Irregexp) que garantiza la ejecución en tiempo lineal con respecto al tamaño de la cadena de entrada. El motor experimental está disponible detrás de las banderas de características mencionadas a continuación.

Seguimiento de holgura en V8

· 19 min de lectura
Michael Stanton ([@alpencoder](https://twitter.com/alpencoder)), maestro reconocido de *holgura*

El seguimiento de holgura es una forma de dar a los nuevos objetos un tamaño inicial que es mayor de lo que realmente podrían usar, para que puedan agregar nuevas propiedades rápidamente. Y luego, después de algún tiempo, devolver mágicamente ese espacio no utilizado al sistema. ¿Genial, no?

Compresión de punteros en V8

· 24 min de lectura
Igor Sheludko y Santiago Aboy Solanes, *los* compresores de punteros

Hay una batalla constante entre la memoria y el rendimiento. Como usuarios, nos gustaría que las cosas fueran rápidas y que consumieran la menor cantidad de memoria posible. Desafortunadamente, generalmente mejorar el rendimiento tiene un costo en el consumo de memoria (y viceversa).

Mejorando las expresiones regulares de V8

· 8 min de lectura
Patrick Thier y Ana Peško, expresadores regulares de opiniones sobre expresiones regulares

En su configuración predeterminada, V8 compila las expresiones regulares a código nativo en la primera ejecución. Como parte de nuestro trabajo en V8 sin JIT, introdujimos un intérprete para expresiones regulares. Interpretar expresiones regulares tiene la ventaja de usar menos memoria, pero conlleva una penalización de rendimiento. En esta publicación de blog describimos cómo aprovechamos las ventajas de interpretar expresiones regulares mientras mitigamos las desventajas.

Un V8 más ligero

· 13 min de lectura
Mythri Alle, Dan Elphick, y [Ross McIlroy](https://twitter.com/rossmcilroy), observadores del peso de V8

A finales de 2018 iniciamos un proyecto llamado V8 Lite, con el objetivo de reducir drásticamente el uso de memoria de V8. Inicialmente, este proyecto fue concebido como un modo Lite separado de V8 específicamente orientado a dispositivos móviles con poca memoria o casos de uso en integradores que priorizan el ahorro de memoria sobre la velocidad de ejecución. Sin embargo, en el proceso de este trabajo, nos dimos cuenta de que muchas de las optimizaciones de memoria que habíamos hecho para este modo Lite podrían trasladarse al V8 regular, beneficiando a todos sus usuarios.