O WPML 3.5 incluiu uma grande mudança na Tradução de Strings. Ao lançá-la, tomamos conhecimento de vários casos que não apareceram durante o desenvolvimento. As atualizações subsequentes lidam com todos os problemas e melhoram ainda mais o desempenho.
Correções desde o WPML 3.5
- Corrigida a exceção não capturada em casos onde a coluna domain_name_context_md5 não existia na tabela icl_strings
- Corrigido o erro fatal: Uncaught exception ‘InvalidArgumentException’ with message ‘Argument ID must be numeric and greater than 0 ao filtrar links permanentes
- Corrigido o erro fatal que aparecia durante o upgrade: WordPress database error: specified key was too long; max key length is 1000
- Corrigido o erro fatal: Declaration of WPML_Post_Element::get_type() must be compatible with that of WPML_Translation_Element::get_type() para o PHP 5.2
- Removida a barra invertida inicial \ para evitar avisos no PHP anterior à versão 5.3
Melhorias de velocidade
Fizemos alguns ajustes na 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.
- Dividida uma tabela grande com redundâncias em duas tabelas pequenas e eficientes
- Otimizados os índices das tabelas
- Limitado o possível crescimento da tabela para sites que usam argumentos de URL, usando uma lista de permissões de argumentos que modificam a seleção da página
Os resultados
Fizemos algumas medições do desempenho do nosso próprio site durante as atualizações de versão. Você pode ver como a carga diminuiu, depois subiu (quando os índices das tabelas não estavam otimizados) e agora voltou a cair, ficando abaixo do original.




Os números absolutos em todos esses gráficos são menos significativos, porque foram obtidos em dias diferentes da semana. Às sextas-feiras, nosso tráfego é muito menor do que às segundas-feiras. Para entender as mudanças, observe a proporção entre os segmentos. Você pode ver que originalmente, o acesso à icl_strings levava aproximadamente o mesmo tempo que a busca de posts (o que não é uma coisa boa). 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 um monte de strings, enquanto o WordPress precisa de apenas alguns posts.
Um processo melhor da próxima vez
Tivemos que lançar esta atualização antes de podermos executar as medições completas de desempenho, porque ela incluía mudanças para o WordPress 4.6. No futuro, vamos nos certificar de separar as melhorias de desempenho da compatibilidade com o WordPress. Assim que uma nova versão do WordPress atingir a fase “release candidate”, lançaremos uma versão menor apenas com alterações de compatibilidade. Vamos reservar tempo para executar mudanças mais longas de desempenho, não relacionadas a correções de bugs e atualizações de compatibilidade, e apenas as lançaremos depois de estarmos muito satisfeitos com os resultados.
A próxima versão do WPML continuará focada em estabilidade e desempenho. 99% dos sites que executam o WPML estão funcionando perfeitamente agora, mas há alguns sites que usam configurações “únicas” do servidor web, PHP ou banco de dados. Vamos resolver isso na próxima versão menor. Também estamos incluindo mais algumas otimizações de desempenho, que tornarão o painel de administração e o front-end mais leves.
Feedback?
Se você tiver dúvidas, ideias e sugestões, por favor adicione seus comentários. Ficamos muito felizes em receber seu feedback e fazemos o nosso melhor para entregar o que você precisa.

