microsoft / python-language-server

Microsoft Language Server for Python
Apache License 2.0
912 stars 131 forks source link

Use Too Much CPU And Memory #1828

Closed ghostbody closed 4 years ago

ghostbody commented 4 years ago

Environment data

Expected behaviour

comuse reasonable computer resources

Actual behaviour

image

nearly unable to use...

Logs

None

Code Snippet / Additional lnformation

None
jakebailey commented 4 years ago

We really need more information than a task manager screenshot of it using CPU; can you please fill out the info from the template or https://github.com/microsoft/python-language-server/blob/master/TROUBLESHOOTING.md ?

MikhailArkhipov commented 4 years ago

Use of CPU and memory depends on size of libraries you use (not your own code). 500 MB is not unusual on data science and similar libraries that may consist of thousands of files. CPU use is similar case - please provide info on libraries you import and for how long analysis runs.

ghostbody commented 4 years ago

@jakebailey it's really hard to reproduce, but it really happens sometimes. And also it stucks and the editor is not responding during this period. Is there any debug tool that can perserve the log? Really want to help to solve this problem~

ghostbody commented 4 years ago

I am working on a flask project and I think there is no such big libraries 🤔 . These are the libraries that I used:

Package               Version  
--------------------- ---------
amqp                  2.5.1    
apispec               2.0.2    
apispec-webframeworks 0.4.0    
atomicwrites          1.3.0    
attrs                 19.3.0   
auth-client           0.2.8    
backcall              0.1.0    
billiard              3.6.1.0  
boto3                 1.10.37  
botocore              1.13.37  
cachetools            3.1.1    
celery                4.3.0    
Cerberus              1.3.1    
certifi               2019.9.11
chardet               3.0.4    
Click                 7.0      
Cython                0.29.6   
decorator             4.4.0    
Deprecated            1.2.6    
dnspython             1.16.0   
docutils              0.15.2   
eventlet              0.25.1   
factory-boy           2.11.1   
Faker                 2.0.3    
flasgger              0.9.2    
Flask                 1.1.1    
flask-swagger-ui      3.20.9   
gevent                1.3.7    
greenlet              0.4.15   
gunicorn              20.0.4   
idna                  2.8      
importlib-metadata    0.23     
inflect               2.1.0    
ipdb                  0.12.2   
ipython               7.8.0    
ipython-genutils      0.2.0    
itsdangerous          1.1.0    
jedi                  0.15.1   
Jinja2                2.10.3   
jmespath              0.9.4    
jsonschema            3.1.1    
kombu                 4.6.5    
MarkupSafe            1.1.1    
mistune               0.8.4    
monotonic             1.5      
more-itertools        7.2.0    
nebula-api            0.1.7    
nebula-common         0.2.1    
nebula-rest           0.1.41   
nebula-route          0.1.11   
nebula-sqlalchemy     0.1.62   
ntessa-next           0.3.76   
packaging             19.2     
parso                 0.5.1    
pathlib2              2.3.5    
pexpect               4.7.0    
pickleshare           0.7.5    
pip                   19.3.1   
pluggy                0.13.0   
prompt-toolkit        2.0.10   
ptyprocess            0.6.0    
py                    1.8.0    
Pygments              2.4.2    
PyJWT                 1.7.1    
pymongo               3.9.0    
pyparsing             2.4.2    
pyrsistent            0.15.4   
pytest                5.2.2    
python-dateutil       2.8.0    
python-json-logger    0.1.11   
pytz                  2019.3   
PyYAML                5.1.2    
requests              2.22.0   
requests-mock         1.5.2    
s3transfer            0.2.1    
setuptools            41.4.0   
six                   1.12.0   
SQLAlchemy            1.3.10   
text-unidecode        1.3      
traitlets             4.3.3    
ua-parser             0.8.0    
urllib3               1.25.6   
user-agents           2.0      
uWSGI                 2.0.18   
vine                  1.3.0    
wcwidth               0.1.7    
Werkzeug              0.16.0   
wheel                 0.33.6   
wrapt                 1.11.2   
zipp                  0.6.0  

Mover, it happens sometimes (not always). I am wondering that I triggered some bugs.

jakebailey commented 4 years ago

The link I provided earlier shows you how to enable further logging. Please check it out.

There are quite a few large libraries in that list; ipython, pymongo... Only a log is going to provide us with info.

MikhailArkhipov commented 4 years ago

Closing due to inactivity. Feel free to reopen with the log as suggested above.