slow dmypy recheck times
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Hi, I'm creating an issue for a problem discussed with @ilevkivskyi over at https://github.com/dropbox/mypy-PyCharm-plugin/issues/26
Ivan indicated that he's getting 300-500ms response time from dmypy on rechecks of a large code base, but on my moderately large code base, dmypy is taking over 15s to rerun if I edit any files.
I'm using 0.701.
First I start the daemon:
$ dmypy run -v -- python/packages
err :
out : python/packages/filesize.py:51: error: I ...
platform : darwin
python_version : 2_7
roundtrip_time : 20.145
stats : {
'validate_meta_time': 0.005048990249633789,
'files_parsed': 819,
'modules_parsed': 520,
'stubs_parsed': 299,
'parse_time': 4.495372295379639,
'find_module_time': 0.3217315673828125,
'find_module_calls': 5739,
'graph_size': 819,
'stubs_found': 299,
'graph_load_time': 5.5668110847473145,
'fm_cache_size': 1936,
'sccs_left': 0,
'nodes_left': 0,
'cache_commit_time': 4.0531158447265625e-06,
'load_fg_deps_time': 9.5367431640625e-07
}
status : 1
Then I edit a file and recheck:
$ dmypy recheck -v --update python/packages/foo.py
err :
out : python/packages/foo.py:1 ...
platform : darwin
python_version : 2_7
roundtrip_time : 17.837
stats : {
'load_fg_deps_time': 2.5272369384765625e-05,
'validate_meta_time': 1.3113021850585938e-05,
'files_parsed': 1,
'modules_parsed': 1,
'stubs_parsed': 0,
'parse_time': 0.002131938934326172,
'find_module_time': 0.005670785903930664,
'find_module_calls': 4,
'semanal_time': 0.0036809444427490234,
'typecheck_time': 0.0034759044647216797,
'deps_time': 0.001669168472290039,
'finish_passes_time': 0.0005908012390136719,
'update_isolated_time': 0.021294116973876953,
'propagate_time': 0.003412961959838867,
'find_changes_time': 0.0008490085601806641,
'fg_update_time': 17.824305057525635,
'files_changed': 1
}
status : 1
Clearly the problem lies in fg_update_time!
It may be important to note that this code produces hundreds of errors. I'm using a custom mypy runner to filter out errors I'm not concerned with until my message filtering PR gets some traction.
Here's my mypy.ini:
[mypy]
python_version = 2.7
ignore_missing_imports = true
follow_imports = skip
warn_no_return = false
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
Any guidance is greatly appreciated!
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Reproduce los tiempos indicados con dmypy run y dmypy recheck -v --update, usando la configuración mypy.ini proporcionada y una base de código comparable. Empieza rastreando la estadística fg_update_time, compárala después con los otros tiempos de recheck y confirma que el cambio reduce el retraso indicado sin modificar los resultados de la comprobación de tipos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- performance, tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100