0

WPML 3.5 ha incluso una modifica fondamentale a String Translation. Quando lo abbiamo messo live, abbiamo scoperto che diversi casi non venivano mostrati in fase di sviluppo. Gli aggiornamenti di follow-up gestiscono tutti i problemi e migliorano ulteriormente le prestazioni.

Risoluzioni da WPML 3.5

  • Risolta un’eccezione non catturata nei casi in cui la colonna domain_name_context_md5 era inesistente nella tabella icl_strings
  • Risolto l’errore fatale: eccezione non catturata ‘InvalidArgumentException’ con messaggio ‘Argument ID must be numeric and greater than 0 when filtering permalinks’ (L’ID dell’argomento deve essere numerico e maggiore di 0 quando si filtrano i permalink)
  • Risolto l’errore fatale che appare durante l’upgrade: errore del database di WordPress: la chiave specificata è troppo lunga; la lunghezza massima della chiave è 1000
  • Risolto l’errore fatale: la dichiarazione di WPML_Post_Element::get_type() deve essere compatibile con quella di WPML_Translation_Element::get_type() per PHP 5.2
  • Rimossa la barra inversa principale per evitare gli avvisi in PHP prima di 5.3

Miglioramenti della velocità

Abbiamo dato qualche ritocco alla nuova tabella che archivia quali stringhe appaiono su quale pagina. Queste modifiche riducono significativamente la grandezza della tabella, migliorano le prestazioni e riducono l’utilizzo della memoria.

  • Divisione di una grande tabella con ridondanze in due piccole tabelle efficienti
  • Indici delle tabelle ottimizzati
  • Limitazione della crescita della possibile tabella per i siti che utilizzano gli argomenti dell’URL, utilizzando la lista bianca degli argomenti che modificano la selezione della pagina

I risultati

Abbiamo preso delle misurazioni delle prestazioni del nostro sito durante gli aggiornamenti della versione. Potete visualizzare quanto si è ridotto il carico, poi è salito (quando gli indici della tabella non erano ottimizzati) e ora è tornato alla situazione originale.

WPML 3.4: String Translation sta impiegando di più a caricare perché siamo precaricando un intero lotto di stringhe
WPML 3.4: String Translation sta impiegando di più a caricare perché siamo precaricando un intero lotto di stringhe

String Translation è inattivo, ma ora abbiamo una grande tabella string_pages
String Translation è inattivo, ma ora abbiamo una grande tabella string_pages

Abbiamo diviso la tabella string_pages in due più piccole, ma un indice aggiuntivo rallenta le selezioni.
Abbiamo diviso la tabella string_pages in due più piccole, ma un indice aggiuntivo rallenta le selezioni.

Tabelle più piccole e indice corretto. Finalmente va bene.
Tabelle più piccole e indice corretto. Finalmente va bene.

I numeri assoluti in tutti questi grafici sono meno significativi, perché sono stati presi in diversi giorni della settimana. Di venerdì il nostro traffico è decisamente inferiore a quello di lunedì. Per comprendere le modifiche date un’occhiata alla proporzione tra i segmenti. Ora potete vedere che originariamente l’accesso icl_strings ha impiegato più o meno lo stesso tempo di recuperare i post (che non è un aspetto positivo). Ora tutti gli accessi al database di WPML impiegano in media 1/3 delle query dei post. Questo è molto significativo, perché WPML deve caricare un intero lotto di stringhe, mentre WordPress necessita soltanto di pochi post.

La prossima volta un processo migliore

Abbiamo dovuto rilasciare questo aggiornamento prima di riuscire a completare le misurazioni sulle prestazioni, perché includeva delle modifiche per WordPress 4.6. In futuro ci assicureremo di scindere i miglioramenti delle prestazioni dalla compatibilità di WordPress. Non appena una nuova versione di WordPress raggiunge il “candidato del rilascio di versione”, rilasceremo una versione minore con le sole modifiche sulla compatibilità. Terremo il tempo per eseguire modifiche sulle prestazioni più lunghe, estranee agli aggiornamenti sulla compatibilità e la risoluzione di bug, e rilasciarle solamente dopo essere davvero soddisfatti dei risultati.

Il prossimo rilascio di versione di WPML continuerà ad essere sulla stabilità e le prestazioni. Ora il 99% dei siti che eseguono WPML funziona agevolmente, ma c’è qualche sito che utilizza configurazioni “uniche” del server web, PHP o database. Le risolveremo nel prossimo rilascio di versione minore. Includeremo anche qualche altra ottimizzazione delle prestazioni, che renderà più agile sia l’amministrazione che il front-end.

Feedback?

Per qualsiasi domanda, idea e suggerimento, aggiungete i vostri commenti. Siamo molto lieti di ottenere il vostro feedback e facciamo del nostro meglio per fornirvi ciò che vi serve.