Gert-dev / php-ide-serenata

Atom IDE package that integrates the Serenata server to provide PHP code assistance
https://serenata.gitlab.io/
Other
275 stars 22 forks source link

Not working with atom 1.42 #496

Closed albert200000 closed 4 years ago

albert200000 commented 4 years ago

It seems that after atom update indexing stopped working. Dev console contains errors about file not found in index.

Gert-dev commented 4 years ago

The file not being found errors are spurious and can be ignored.

Everything seems to work fine here in Atom 1.42, is functionality such as autocompletion not working either?

albert200000 commented 4 years ago

I've managed to re index the project but it was slow and consumed a lot of ram (over 5GB for php processes). I've noticed that php process was not killed after I closed Atom. I've tested on other machine with 1.41 and it's the same behaviour so you can close this. But why memory is not released after indexing?

Gert-dev commented 4 years ago

Okay, good to hear. I'll close this since the original issue appears to be solved.

Memory usage is high because of multiple reasons. One is that the server uses Doctrine, which has a unit of work that keeps track of loaded entities. Another is that there are places in the server that also keep a reference to those entities for caching reasons. There is a ticket about it here.

PHP also hasn't been particularly well-suited towards long-running CLI processes for a long time, so not much attention has gone to this.

I don't intend to shift blame, though. PHP 7.4 has begun adding weak references, and PHP 8 may include WeakMap, which may provide a more suitable solution for this that doesn't prevent the objects from ever being released.