Wikipedia:Café/Portal/Archivo/Técnica/2022/03

De Wikipedia, la enciclopedia libre


Error de Lua: not enough memory en Among Us[editar]

Hola buenas. Cuando visito el artículo Among Us aparece el siguiente error: Error de Lua: not enough memory . ¿Soy solo yo o hay un problema con alguna plantilla? ZebaX2010 [PRESS START] 06:07 19 feb 2022 (UTC)

El error tiene que ver con la plantilla {{ficha de videojuego}} o mas precisamente, con su relación con wikidata. La plantilla toma los datos de Wikidata y los inserta en el artículo, pero al parecer últimamente se ha añadido mucha información a su página en wikidata. En este momento su historial indica que ya supera los 1.4 millones de bites, el doble del tamaño de la página más larga de Wikipedia: Literatura victoriana. Naturalmente la plantilla colapsa y se queda sin espacio para almacenar la información mucho antes de poder descargar tal cantidad de datos. Como no parece ser un vandalismo, sino únicamente un exceso de información, no se puede solo retirar los datos. Tengo entendido que un problema similar se presentó hace tiempo con las plantillas sobre la pandemia, pero como no tengo conocimiento sobre los módulos en lua no se como aplicar la solución de esa plantilla en este caso. Espero que a alguien le sirva el dato para poder solucionar el problema. —AntoFran— (→Deja tu opinión aquí←) 06:22 19 feb 2022 (UTC)
@AntoFran, el problema no son los 1,4 MB de Wikidata, sino que las plantillas escritas en wikitexto no hacen caché de esa información, por lo que cada vez que se llama a la función {{propiedad}} para obtener un dato de Wikidata se cargan nuevamente esos mismos 1,4 MB de datos de Wikidata. En la actual {{Ficha de videojuego}} esto se hace en 52 ocasiones, lo cual necesita 52 × 1,4 MB = 73 MB de memoria, cuando el límite son 50 MB. Resultado: no hay memoria suficiente. En cambio, en plantillas escritas a través de módulos de código Lua, esta información se almacena en la caché, por lo que no se repite independientemente de cuantas veces se necesiten los datos de Wikidata. Los módulos de Lua usan un lenguaje que puede ser más complejo, pero a su vez más eficaz que el wikitexto.
Invoco a Amitie 10g para saber si el módulo Módulo:Ficha de videojuego que él estaba programando ya está finalizado y listo para suplantar a la actual plantilla. -- Leoncastro (discusión) 12:49 19 feb 2022 (UTC)
Si mal no recuerdo, el modulo está listo, o cuanto menos lo suficientemente avanzado como para reemplazar la imolementacion actual. Voy a echar un vistazo al módulo y lo trabajaré con urgencia para implementarlo a la brevedad. Gracias por el aviso. --Amitie 10g (discusión) 16:21 19 feb 2022 (UTC)
Perdonar que me meta, que soy lego en estos asuntos, pero... ¿La línea 25 del módulo está bien? veo que pone Inicializardor. Un saludo... ¿Y la 227?.--Marinero en tierra (discusión) 16:32 19 feb 2022 (UTC)
Es solo un comentario, por lo que no influye en nada; aún así lo corregí. --Amitie 10g (discusión) 17:14 19 feb 2022 (UTC)

Visto lo visto, he revisado algunas cosas y me encontré con alguno de los problemas que pueden causar el agotamiento de memoria:

En la función p.getPropiedad() del Módulo:Wikidata toma el parámetro |uno=último, pero parece que el valor último no lo toma en cuenta, razón por la cual, muestra una larga lista de versiones (además de mostrar solo el primer conjunto de dígitos antes del primer punto, lo que es incorrecto); la sintaxis es correcta, por lo que el problema debería estar en el módulo.

Razón por la cual, he decidido usar la plantilla {{Ficha de videojuego/zona de pruebas}} en Among Us, por lo que ahora se ve correctamente.

Yendo más lejos, me puse a editar el Módulo:Ficha de videojuego para obtener la información de depuración de Among Us, con la plantilla {{Ficha de videojuego}} en su implementación actual, y con Lua, y me encuentro con lo siguiente:

In a nutshell:

  • La plantilla actual agota toda la memoria de Lua (50/50 megabytes) frente a la implementación en Lua (39,5/50 megabytes)
  • En cuanto al tiempo de CPU, la página con la impementación actual tarda 4,987 (5,045) segundos en procesar, mientras que en Lua tarda 2,075 (2,263) segundos

Plantilla problemática[editar]

Entidades de Wikidata usadas en esta página
  • ocupación: Etiqueta: es
  • situado en la entidad territorial administrativa: Etiqueta: es
  • movimiento: Etiqueta: es
  • género: Etiqueta: es
  • basado en: Etiqueta: es
  • logotipo: Etiqueta: es
  • ubicación de la sede: Etiqueta: es
  • número de casos: Etiqueta: es
  • premio recibido: Etiqueta: es
  • país: Etiqueta: es
  • imagen: Etiqueta: es
  • lugar de nacimiento: Etiqueta: es
  • lugar de fallecimiento: Etiqueta: es
  • superficie: Etiqueta: es
  • altura: Etiqueta: es
  • superficie de cuenca hidrográfica: Etiqueta: es
  • masa: Etiqueta: es
  • país de nacionalidad: Etiqueta: es
  • ubicación: Etiqueta: es
  • periodicidad: Etiqueta: es
  • alcance del faro: Etiqueta: es
  • instancia de: Etiqueta: es
  • cargo ocupado: Etiqueta: es
  • compuesto por: Etiqueta: es
  • educado en: Etiqueta: es
  • página web oficial: Etiqueta: es
  • Módulo:Wikidata: Enlace de sitio, Título, Descripción: en
  • español: Título, Etiqueta: es
  • occitano: Título, Etiqueta: es
  • España: Declaración: P37
  • catalán: Título, Etiqueta: es
  • euskera: Título, Etiqueta: es
  • aragonés: Título, Etiqueta: es
  • gallego: Título, Etiqueta: es
Plantillas usadas en esta previsualización:

Datos de perfilado del analizador:

Tiempo de uso de CPU 4,987 segundos
Tiempo real de uso 5,045 segundos
N.º de nodos visitados por el preprocesador 9304/1 000 000
Tamaño de inclusión posexpansión 51 008/2 097 152 bytes
Tamaño de los parámetros de plantilla 8501/2 097 152 bytes
Profundidad máxima de expansión 14/100
Contador de funciones costosas del analizador 0/500
Profundidad de recursión de función «unstrip» 1/20
Tamaño tras la expansión de «unstrip» 85 419/5 000 000 bytes
Tiempo de uso de Lua 4,383/10,000 segundos
Uso de memoria de Lua 52 428 772/52 428 800 bytes
Perfil de Lua
recursiveClone <mwInit.lua:41> 2700 ms 60.8%
type 380 ms 8.6%
(for generator) 380 ms 8.6%
Scribunto_LuaSandboxCallback::getEntity 360 ms 8.1%
? 320 ms 7.2%
old_getmetatable 80 ms 1.8%
Scribunto_LuaSandboxCallback::getAllExpandedArguments 60 ms 1.4%
pairs 60 ms 1.4%
maskEntityTable <mw.wikibase.entity.lua:61> 40 ms 0.9%
Scribunto_LuaSandboxCallback::preprocess 20 ms 0.5%
[others] 40 ms 0.9%
Número de entidades de Wikibase cargadas 1/400

Usando Lua[editar]

Entidades de Wikidata usadas en esta página
  • ocupación: Etiqueta: es
  • situado en la entidad territorial administrativa: Etiqueta: es
  • movimiento: Etiqueta: es
  • género: Etiqueta: es
  • basado en: Etiqueta: es
  • logotipo: Etiqueta: es
  • ubicación de la sede: Etiqueta: es
  • número de casos: Etiqueta: es
  • premio recibido: Etiqueta: es
  • país: Etiqueta: es
  • imagen: Etiqueta: es
  • lugar de nacimiento: Etiqueta: es
  • lugar de fallecimiento: Etiqueta: es
  • superficie: Etiqueta: es
  • altura: Etiqueta: es
  • superficie de cuenca hidrográfica: Etiqueta: es
  • masa: Etiqueta: es
  • país de nacionalidad: Etiqueta: es
  • ubicación: Etiqueta: es
  • periodicidad: Etiqueta: es
  • alcance del faro: Etiqueta: es
  • instancia de: Etiqueta: es
  • cargo ocupado: Etiqueta: es
  • compuesto por: Etiqueta: es
  • educado en: Etiqueta: es
  • página web oficial: Etiqueta: es
  • Módulo:Wikidata: Enlace de sitio, Título, Descripción: en
  • español: Título, Etiqueta: es
  • occitano: Título, Etiqueta: es
  • España: Declaración: P37
  • catalán: Título, Etiqueta: es
  • euskera: Título, Etiqueta: es
  • aragonés: Título, Etiqueta: es
  • gallego: Título, Etiqueta: es
Plantillas usadas en esta previsualización:

Datos de perfilado del analizador:

Tiempo de uso de CPU 2,075 segundos
Tiempo real de uso 2,263 segundos
N.º de nodos visitados por el preprocesador 7744/1 000 000
Tamaño de inclusión posexpansión 256 625/2 097 152 bytes
Tamaño de los parámetros de plantilla 821/2 097 152 bytes
Profundidad máxima de expansión 20/100
Contador de funciones costosas del analizador 4/500
Profundidad de recursión de función «unstrip» 1/20
Tamaño tras la expansión de «unstrip» 191 456/5 000 000 bytes
Tiempo de uso de Lua 1,446/10,000 segundos
Uso de memoria de Lua 41 443 459/52 428 800 bytes
Perfil de Lua
recursiveClone <mwInit.lua:41> 440 ms 30.1%
Scribunto_LuaSandboxCallback::getEntity 360 ms 24.7%
? 180 ms 12.3%
Scribunto_LuaSandboxCallback::getEntityStatements 100 ms 6.8%
(for generator) 80 ms 5.5%
Scribunto_LuaSandboxCallback::getAllExpandedArguments 60 ms 4.1%
Scribunto_LuaSandboxCallback::getSiteLinkPageName 40 ms 2.7%
type 20 ms 1.4%
format 20 ms 1.4%
Scribunto_LuaSandboxCallback::callParserFunction 20 ms 1.4%
[others] 140 ms 9.6%
Número de entidades de Wikibase cargadas 5/400

Viendo la versión actual de la plantilla en Lua, ya creo que es momento de reemplazarla, ya que la veo funcional; cualquier problema que surja no veo justificación el volver a laversión anterior, que causa más problemas que los potenciales problemas con la nueva implementación, que, de todos modos, se puede resolver reportando en la discusión de la plantilla.

Otra etapa importante sería la optimización de módulos que usen tablas, para usar la función mw.loadData(), de manera de evitar la sobrecarga de datos redundantes.--Amitie 10g (discusión) 17:15 19 feb 2022 (UTC)

Amitie 10g, por unos días el artículo estuvo bien, pero hoy nuevamente sale el aviso de falta de memoria. ZebaX2010 [PRESS START] 08:04 1 mar 2022 (UTC)
Echaré un vistazo al módulo durante el día. Tal vez haga falta debatir sobre las versiones en Wikidata. --Amitie 10g (discusión) 10:29 1 mar 2022 (UTC)

Wikidata weekly summary #510[editar]

21:15 7 mar 2022 (UTC)

Problema con reproductor de audio en Recurso del día de portada[editar]

Hola, quisiera saber si alguien más ha sufrido el mismo problema que estoy teniendo en escritorio. He probado con Firefox y Google Chrome en unas tres computadoras pero el problema es igual. (Imagen: https://imgur.com/H4f1saa) Puedo ver el reproductor por una fracción de segundo pero luego desaparece y es reemplazado por una barra gris. ~ℳɑrio - (¿Un té?) 22:51 8 mar 2022 (UTC)

Problema conocido. Solución en proceso. CC: MarioFinale. -- Leoncastro (discusión) 23:03 8 mar 2022 (UTC)

Wikidata weekly summary #511[editar]

22:06 14 mar 2022 (UTC)

Growth Newsletter #20[editar]

17:12 16 mar 2022 (UTC)

Wikidata weekly summary #512[editar]

16:00 21 mar 2022 (UTC)

Wikidata weekly summary #513[editar]

19:53 28 mar 2022 (UTC)