Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Parsing slows down with each subsequent parse

Abierto
#102 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
python
Área
performance

Línea de trabajo

Comienza con el punto de entrada apertium.Analyzer('eng') y su llamada a analyze; después reproduce el bucle del issue mientras lo comparas con la ruta basada en hfst. Rastrea por qué los análisis repetidos pasan de unos 0.0009 a 0.03 segundos en la iteración 1000; se considera terminado cuando el análisis repetido deja de ralentizarse progresivamente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Python 3.8.10
apertium-python 0.2.3
apertium 3.8.1
Ubuntu 20.04 (running under WSL)

Reproducing code:

import apertium
import time

i = 0
parser = apertium.Analyzer('eng')
while True:
	then = time.time()
	parser.analyze("Why does this keep getting slower?")
	now = time.time()
	print("Parsing {} took {}".format(i, now - then))
	i += 1

When I run this code, the time taken for the same parse gradually increases. In the first few iterations it takes about 0.0009 seconds per parse, but by iteration 1000 it takes about 0.03 seconds, and it increases from there. Moving parser = apertium.Analyzer('eng') within the loop doesn't solve the problem. If I use the hfst library to run the transducer instead, no slowdown is observed.

Lenguaje dominante
Python
Estrellas
35
Forks
27
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apertium/apertium-python

Todos los issues de apertium/apertium-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.