BT

Go: Linguagem de programação da Google ficou mais veloz

| por Roopesh Shenoy Seguir 0 Seguidores , traduzido por Rafael Sakurai Seguir 29 Seguidores em 15 set 2014. Tempo estimado de leitura: 2 minutos |

Foi liberada a versão 1.3 do Go após 3 meses em versão beta. A nova versão não teve mudanças na linguagem em comparação com a versão 1.2, mas veio com diversas melhorias de desempenho, suporte para executar os programas via linha de comando através de um cliente nativo e diversas outras melhorias.

Algumas das melhorias de desempenho mais importantes e mudanças nas implementações foram:

  • A pilha de rotinas do Go agora usa um modelo contíguo ao invés do velho modelo "segmentado";
  • O GC está mais rápido - usa o algoritmo de varredura simultânea, tem um melhor paralelismo e maior largura de páginas da memória; que permitem a redução de 50-70% no tempo de parada do GC. Agora também é mais preciso durante a examinação dos valores na pilha;
  • O runtime trata de forma mais eficiente os adiamentos;
  • Detector de corridas simultâneas está em torno de 40% mais rápido;
  • Regexp (pacote de expressões regulares) agora tem um segundo mecanismo de execução de uma passagem, que torna mais rápida a determinação de expressões simples;
  • sync.Pool - um novo tipo que fornece um mecanismo eficiente para implementação de caches cuja memória pode ser recuperada pelo sistemas;
  • Iteração de pequenos mapas (mapas com oito ou menos elementos) não acontece de forma consistente; isso é para evitar que os desenvolvedores escrevam código que dependa de ordenamento na iteração dos mapas, uma vez que esse código funcionaria bem apenas para alguns poucos sistemas.

Há também algumas melhorias nas ferramentas, como:

  • godoc pode executar a analise estática do código pelos índices;
  • misc/benchcmp (ferramenta de benchmarking) foi reescrita como um programa Go;
  • Os compiladores e lincadores foram refatorados; a fase de seleção de instrução foi movida para o compilador, que pode acelerar o tempo de compilação para projetos grandes;
  • A gc toolchain agora suporta um sandbox para execução de clientes nativos das arquiteturas Intel de 32 e 64-bits. Note que os binários gerados pelo Go 1.3 ainda não podem ser executados diretamente pelo Google Chrome.

Há também correções de segurança na biblioteca crypto/tls. Para saber mais sobre todas as mudanças acesse as notas de liberação dessa versão.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT