0

O WPML 3.5 incluiu uma importante alteração no String Translation. À medida que essa versão passou a ser utilizada, descobrimos uma série de ocorrências que não se manifestaram durante o desenvolvimento. As atualizações seguintes corrigem todos os problemas e melhoram ainda mais o desempenho.

Correções desde o WPML 3.5

  • Corrigida uma exceção não captada em casos em que a coluna domain_name_context_md5 não existia na tabela icl_strings
  • Corrigido erro fatal: Exceção não captada ‘InvalidArgumentException’ com mensagem ‘O ID de argumento deve ser numérico e maior que 0 ao filtrar permalinks’
  • Corrigido erro fatal que aparecia durante o upgrade: Erro de banco de dados do WordPress: a chave especificada era longa demais; comprimento máximo da chave é 1000
  • Corrigido erro fatal: Declaração de WPML_Post_Element::get_type() precisa ser compatível com a de WPML_Translation_Element::get_type() para PHP 5.2
  • Removida a barra invertida inicial para evitar avisos em versões do PHP anteriores à versão 5.3

Melhorias de velocidade

Fizemos alguns ajustes à nova tabela que armazena quais strings aparecem em qual página. Essas alterações reduzem significativamente o tamanho da tabela, melhoram o desempenho e reduzem o consumo de memória.

  • Divisão de uma grande tabela com redundâncias para duas tabelas menores e eficientes
  • Índices de tabela otimizados
  • Limitação de possível aumento da tabela para sites que usam argumentos de URL, usando uma lista branca de argumentos que modificam a seleção de página.

Os resultados

Fizemos algumas medições do desempenho de nosso próprio site durante as atualizações das versões. Você pode ver como a carga diminuiu, daí aumentou (quando os índices de tabela não estavam otimizados) e agora voltou a estar até mesmo abaixo da original.

WPML 3.4 - O String Translation está levando mais tempo para carregar porque estamos pré-carregando muitas strings
WPML 3.4 – O String Translation está levando mais tempo para carregar porque estamos pré-carregando muitas strings

O tempo de carregamento do String Translation está menor, mas agora temos uma grande tabela string_pages
O tempo de carregamento do String Translation está menor, mas agora temos uma grande tabela string_pages

Dividimos a tabela string_pages em duas menores, mas um índice extra torna as seleções lentas
Dividimos a tabela string_pages em duas menores, mas um índice extra torna as seleções lentas

Tabelas menores e índice correto Finalmente, um bom resultado.
Tabelas menores e índice correto Finalmente, um bom resultado.

Os números absolutos em todos esses gráficos não são tão significativos porque foram obtidos em diferentes dias da semana. Nas sextas-feiras, nosso tráfego é muito menor do que nas segundas-feiras. Para entender as mudanças, veja a proporção entre os segmentos. Você pode ver que, no início, o acesso às icl_strings levou basicamente o mesmo tempo que a busca dos posts (o que não é bom). Agora, todo o acesso ao banco de dados do WPML leva, em média, 1/3 das consultas de posts. Isso é muito significativo, porque o WPML precisa carregar muitas strings, enquanto o WordPress só precisa de alguns posts.

Um processo melhor na próxima vez

Tivemos de lançar esta atualização antes de poder realizar medições de desempenho completas porque ela incluía alterações para o WordPress 4.6. Futuramente, vamos procurar desatrelar as melhorias de desempenho da compatibilidade com o WordPress. Assim que uma nova versão do WordPress alcançar o status de “Release Candidate”, faremos uma versão secundária apenas com alterações de compatibilidade. Vamos nos programar para realizar alterações de desempenho mais longas, não relacionadas a correções de erros e atualizações de compatibilidade, e apenas lançá-las após estarmos muito satisfeitos com os resultados.

A próxima versão do WPML continuará envolvendo a estabilidade e o desempenho. 99% dos sites que usam o WPML estão funcionando tranquilamente agora, mas há alguns que usam configurações “atípicas” do servidor Web, PHP ou do banco de dados. Trataremos desses na próxima versão secundária. Estaremos incluindo também mais algumas otimizações de desempenho, que tornarão mais enxutos o painel de administrador e o front-end.

Sugestões?

Se tiver dúvidas, ideias e sugestões, deixe seu comentário. Ficamos muito contentes de saber sua opinião e daremos o nosso máximo para providenciar o que você precisa.