Python inicia 3 vezes mais rápido com imports preguiçosos (novo recurso)
Autoria: Better Stack · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: Python Starts 3X Faster With Lazy Imports (New Feature) · Canal: Better Stack · 01:03 · Assistir no YouTube
Tópicos: Engenharia de software com IA, Ferramentas de desenvolvimento com IA, Inferência e otimização de modelos
Os lazy imports do Python adiam a execução de um import até que o código use o módulo, o que pode acelerar a inicialização de aplicativos. A funcionalidade, que a Meta já havia adotado em sua própria versão do Python, chega à versão oficial com a nova palavra-chave lazy. Em um teste citado, o tempo de inicialização caiu de 104 ms com imports normais para 36 ms com todos os imports adiados. Porém, adiar todos os imports pode quebrar código que registra plugins durante a importação; por isso, é preferível marcar apenas os imports mais pesados.
Pontos-chave
Seção intitulada “Pontos-chave”- Imports tradicionais fazem o Python localizar e compilar módulos e executar seus arquivos e dependências.
- Com lazy imports, o import real só é executado quando o código usa o módulo pela primeira vez.
- A nova palavra-chave
lazypermite mover para o topo imports que antes ficavam dentro de funções. - Uma variável de ambiente pode tornar todos os imports preguiçosos por padrão.
- No teste mencionado, a inicialização levou 104 ms com imports normais, 46 ms com imports pesados dentro de funções e 36 ms com todos os imports adiados.
- Adiar todos os imports pode afetar código que registra plugins durante a importação.
- O vídeo recomenda usar
lazyseletivamente, sobretudo nos imports mais pesados.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | Como funcionam os lazy imports | O vídeo explica o trabalho realizado pelos imports tradicionais e como os lazy imports adiam esse trabalho. |
| 00:31 | Uso e ganhos de desempenho | São apresentados a palavra-chave lazy, a configuração por variável de ambiente e os resultados de um teste de inicialização. |
Citações
Seção intitulada “Citações”Os novos lazy imports do Python podem fazer seus aplicativos iniciarem três vezes mais rápido. — 00:00
O import real só é executado quando o código o usa pela primeira vez. — 00:31
É melhor marcar apenas os imports mais pesados. — 01:03
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- lazy imports (conceito): Imports que adiam a execução do módulo até que o código use algo dele.
- Python (ferramenta): Linguagem cuja nova funcionalidade de lazy imports é apresentada no vídeo.
- Meta (empresa): Empresa que adotou lazy imports como padrão em sua própria versão do Python em 2022.
- Python 3.15 (ferramenta): Versão do Python que o vídeo menciona como lançada em 1º de outubro.
- Better Stack (empresa): Canal do YouTube que publicou o vídeo.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 As novas importações lazy do Python podem fazer seus aplicativos iniciarem três vezes mais rápido, então deixe-me explicar. Quando você importa um módulo para o Python, o interpretador precisa fazer várias coisas, como localizar e compilar o arquivo. Em seguida, ele executa o arquivo inteiro, incluindo as próprias importações dele, e isso continua por todo o grafo de dependências. Mas você pode evitar tudo isso com importações lazy. Elas funcionam fornecendo um marcador provisório; a importação real só é executada quando o código a usa pela primeira vez. A Meta fez isso com sua própria bifurcação do Python em 2022 para tornar esse o comportamento padrão. E agora isso está
00:31 chegando à versão oficial com a nova palavra-chave lazy. Vamos ver alguns exemplos. Primeiro, qualquer importação que você tenha escondido dentro de uma função agora pode voltar para o topo, com lazy antes dela. Em segundo lugar, você pode definir uma variável de ambiente para tornar todas as importações lazy por padrão, ativando Python lazy imports. Um dos desenvolvedores principais do Python testou isso em um pequeno aplicativo próprio e, com importações normais, a inicialização levou 104 milissegundos. Esconder as importações mais pesadas dentro de funções reduziu esse tempo para 46, e tornar tudo lazy reduziu para 36 milissegundos. Mas,
01:03 mudar tudo para lazy pode, na verdade, quebrar o código que registra plugins quando é importado. É preferível usar a palavra-chave, porque ela só altera as linhas em que aparece; por isso, é melhor marcar apenas as importações mais pesadas. O Python 3.15 foi lançado em 1º de outubro, então experimente e veja se você também ganha desempenho. E, se quiser ficar por dentro das novidades de tecnologia e IA, inscreva-se no Better Stack.
Transcrição original
[00:00] Python’s new lazy imports can make your apps launch three times faster, so let me explain. When you import a module into Python, the interpreter needs to do a bunch of work like finding and compiling the file, then it runs the whole file including its own imports, and this continues through the entire dependency graph. But, you can avoid all of this with lazy imports. These work by giving you a placeholder, then the real import only runs when the code first uses it. Meta actually did this with their own fork of Python back in 2022 to make this the default. And now it’s
[00:31] coming to the official version with the new lazy keyword. Let’s go through a couple of examples. First, any import you’ve hidden inside a function can now move back to the top with lazy in front. And secondly, you can actually set an environment variable to make every import lazy by default by setting Python lazy imports. One of Python’s core developers tested this on a small app of his own, and with normal imports, it took 104 milliseconds to start. Hiding the heavy ones inside functions got that down to 46, and making everything lazy got it down to 36 milliseconds. But,
[01:03] switching everything to lazy could actually break code that registers plugins when it’s imported. Using the keyword instead is preferred because it only changes its own lines, so it’s better to just mark your heavy imports. Python 3.15 was actually released just on October the 1st, so try it out and see if you also get a performance boost. And if you want to stay up-to-date with tech and AI, then subscribe to Better Stack.