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.
Após ler este artigo, você será capaz de:
Copiar o link do artigo
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.
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.
"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).
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.
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.