WPML 3.5 incluye un cambio muy importante en la traducción de cadenas. Luego del lanzamiento, se apreciaron algunos puntos que no habían sido detectados durante el desarrollo. El texto siguiente trata de estos temas y de la mejora en el rendimiento.

Problemas solucionados desde WPML 3.5

  • se solucionó una excepción no prevista que surgía en aquellos casos en los cuales la columna domain_name_context_md5 no existía en la tabla icl_strings.
  • se solucionó un error fatal por la excepción no prevista ‘InvalidArgumentException’ con el mensaje “Argument ID must be numeric and greater than 0 when filtering permalinks”.
  • se solucionó el error fatal que aparecía durante la actualización: WordPress database error: specified key was too long; max key length is 1000.
  • se solucionó el error fatal: Declaration of WPML_Post_Element::get_type() must be compatible with that of WPML_Translation_Element::get_type() for PHP 5.2
  • se eliminó el carácter “” del principio para evitar las advertencias en PHP antes de 5.3.

Mejoras en la velocidad

Hemos realizado algunos cambios en la tabla nueva que almacena las cadenas que aparecen en las páginas. Dichos cambios reducen significativamente el tamaño de la tabla, mejoran el rendimiento y disminuyen el consumo de memoria.

  • Se dividió una tabla grande con redundancias en dos tablas pequeñas y más eficientes.
  • Se optimizaron los índices de tablas.
  • Se limitó el crecimiento posible de las tablas para aquellos sitios que utilizan argumentos en la dirección URL por medio de la utilización de un conjunto de argumentos de modificación de la selección de página.

Los resultados

Tomamos medidas del rendimiento de nuestro propio sitio web durante las actualizaciones de versión. Es posible apreciar cómo se reduce la carga, como aumenta (cuando los índices no están optimizados) y cómo se reducen ahora a menos del valor original.

WPML 3.4: la traducción de cadena toma más tiempo para cargar porque estamos cargando todo el conjunto de cadenas.

WPML 3.4: la traducción de cadenas toma más tiempo para cargar porque estamos cargando todo el conjunto de cadenas.

La traducción de cadenas es menor pero ahora tienen una tabla string_pages mayor.

La traducción de cadenas es menor pero ahora tienen una tabla string_pages mayor.

Dividimos la tabla string_pages en dos más pequeñas, pero un índice adicional hace que la selección sea más lenta.

Dividimos la tabla string_pages en dos más pequeñas, pero un índice adicional hace que la selección sea más lenta.

Tablas más pequeñas e índice correcto. Ahora estamos bien.

Tablas más pequeñas e índice correcto. Ahora estamos bien.

Los números absolutos de todas las gráficas son menos significativos porque han sido tomados en distintos días de la semana. Los viernes nuestro tráfico es menor que los lunes. Para comprender los cambios, es necesario prestar atención a la proporción entre los segmentos. Originalmente, el acceso a icl_strings insumía casi el mismo tiempo que recuperar entradas (lo cual no es una buena cosa). Ahora, todos los accesos a la base de datos de WPML insumen un tercio del tiempo de la búsqueda de entradas. Esto es muy significativo porque WPML necesita cargar un todo un conjunto de cadenas mientras que WordPress requiere tan solo una pocas entradas.

Un proceso mejor para la próxima vez

Hemos resuelto publicar esta actualización antes de poder correr las pruebas de rendimiento a satisfacción porque incluye mejoras para WordPress 4.6. En el futuro, nos aseguraremos de generar estas pruebas sin interferir con la compatibilidad con WordPress. Tan pronto como la versión nueva de WordPress llegue a los usuarios, publicaremos una actualización menor que incluya solamente cambios de compatibilidad. Destinaremos más tiempo a realizar cambios de rendimiento, indiferentemente de soluciones a otros problemas y a compatibilidad, y los liberaremos solamente luego de estar satisfechos con los resultados.

La próxima versión de WPML continuará con sus características de estabilidad y rendimiento. El 99 % de los sitios que utilizan WPML están trabajando sin problema, aunque existen algunos sitios que aprovechan configuraciones “únicas” de los servidores, de PHP o de las bases de datos. Nos abocaremos a ellos en la actualización menor próxima. También incluiremos optimizaciones de rendimiento menores, lo que permitirá ofrecer interfaces de usuario y de administrador mejores.

¿Comentarios?

Si tiene preguntas, ideas y sugerencias, agradeceremos las comunique. Estaremos muy felices de recibir sus opiniones y poder entregar las soluciones que espera.