O que é o Chrome V8?

O Chrome V8 executa código JavaScript. O Node.js é baseado no Chrome V8 e é um ambiente de tempo de execução amplamente usado para funções JavaScript sem servidor. No entanto, há vantagens em executar funções diretamente no V8.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir mecanismo de JavaScript
  • Saiba mais sobre o Chrome V8 e o Node.js
  • Entender o papel que o Chrome V8 pode desempenhar em arquiteturas sem servidor

Copiar o link do artigo

O que é o Chrome V8?

O Chrome V8 é um mecanismo de JavaScript, o que significa que ele executa o código JavaScript. Originalmente, o JavaScript foi escrito para ser executado por navegadores da web. O Chrome V8, ou apenas V8, pode executar o código JavaScript dentro ou fora de um navegador, o que possibilita o script do lado do servidor.

Como um motor de carro V8 (oito cilindros), o Chrome V8 é rápido e poderoso. O V8 traduz o código JavaScript diretamente em código de máquina* para que os computadores possam realmente entendê-lo e, em seguida, executa o código traduzido ou compilado. O V8 também otimiza a execução do JavaScript.

*O código de máquina é uma linguagem que as CPUs podem entender. É puramente digital, ou seja, feito de dígitos.

O que significa compilação?

Compilação é um processo que traduz o código de uma linguagem de programação para outra. Normalmente, um compilador traduz o código de um nível superior de abstração para um nível inferior de abstração de linguagens utilizadas por humanos como JavaScript em código legível por máquina.

O Chrome V8 executa o que é chamado de compilação just-in-time. Em vez de compilar o JavaScript com antecedência, ele compila o código ao mesmo tempo em que é executado.

O que é sandbox?

Sandbox do Chrome V8

"Sandbox" é um ambiente de execução de software isolado e particionado de outros ambientes, mesmo aqueles na mesma máquina.

Sandbox é um recurso chave do Chrome V8. Cada processo passa por uma área restrita, o que garante que as funções JavaScript sejam executadas separadamente nele e que a execução de uma parte do código não afete nenhuma outra parte do código. (Ao contrário de muitos produtos empresariais de sandbox, que abrem e executam arquivos executáveis em máquinas virtuais isoladas, o sandbox V8 não diminui a performance).

O que é Node.js?

Node.js é um ambiente de tempo de execução* para a execução de código JavaScript e é construído no mecanismo Chrome V8. É assíncrono, o que significa que não precisa esperar a conclusão de um processo antes de iniciar outro. Como o V8, o Node.js é gratuito e de código aberto. Ao contrário do V8, ele não possui sandbox integrado.

(Aqueles familiarizados com JavaScript notarão a extensão de arquivo ".js"; no entanto, esta é uma escolha puramente estética para o nome do ambiente de tempo de execução para indicar sua associação com JavaScript e não significa que Node.js é um arquivo JavaScript).

*Um ambiente de tempo de execução é o ambiente de software no qual o código é executado.

Por que V8 e Node.js são importantes para a computação sem servidor?

As funções sem servidor precisam de uma forma de execução quando são acionadas. Vários fornecedores de computação sem servidor oferecem o Node.js como tempo de execução para funções JavaScript sem servidor (outros tempos de execução são usados para outras linguagens).

O Cloudflare Workers, no entanto, é executado diretamente no V8. Existem algumas razões para isso. Uma razão é a velocidade de execução de funções que não foram usadas recentemente. Inicializações a frio são um problema na computação sem servidor, mas a execução de funções no V8 significa que as funções podem ser "processadas" e executadas, normalmente, em 5 milissegundos ou menos. (O Node.js tem mais sobrecarga e geralmente leva alguns milissegundos a mais.) Outro motivo é que as sandboxes do V8 em Javascript funcionam automaticamente, o que aumenta a segurança.