slow dmypy recheck times
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Merge moyen
- 1 j 18 h
- PR mergées (30 j)
- 54
Description
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!
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez les temps signalés avec dmypy run et dmypy recheck -v --update, en utilisant les paramètres mypy.ini fournis et une base de code comparable. Commencez par suivre la statistique fg_update_time, puis comparez-la aux autres temps de recheck et confirmez que la modification réduit le délai signalé sans modifier les résultats de la vérification des types.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- performance, tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100