Extremely slow performance on Mac, PHP 8 & EAP

I've recently switched to Mac, and I'm really finding that performance on PHPStorm is terrible compared to the Windows version.

For PHPStorm 8, it seems to be almost exclusively connected to indexing. When PHPStorm hangs, it will normally be preparing for indexing, then the indexing will take a LONG time. Not only this, but PHPStorm will be very sluggish during this time, and sometimes not finish. Oftem when I restart PHPStorm, it will then reindex AGAIN, so I spend more time waiting for PHPStorm than getting on with coding.

I've seen this behaviour on about 5 different Macs now (we've been installing a bunch at work) and it's pretty frustrating.

I've been reading up about it, and some suggested to use the EAP version of PHPStorm, but this has been an even worse experience. Often it won't start for minutes, then there will be extended periods of unresponsiveness. It's really not a workable solution.

The current install is on a brand new MacBook Pro 13".

What can I do?

Thanks,
Dave

5 comments
Comment actions Permalink

Wow, this is going from bad to worse!

PHPStorm is literally unusable on this new Mac.

It's constantly indexing. The project is on a network drive, I don't know if that has anything to do with it, but even so - I don't understand why it is constantly re-indexing. Literally, every minute or so, and indexing takes about 10 minutes, during which time, PHPStorm is very sluggish.

And if the machine gos to sleep, it's completely unresponsive for about 30 seconds when it wakes up, then stutters into life over the course of about a minute.

Not only that, but folder I KNOW exist aren't showing, then when I click in the Project panel, PHPStorm becomes completely unresponsive,

What the hell is going on?

Is there a fix for this?

0
Comment actions Permalink

Hi there,

It's constantly indexing. The project is on a network drive, I don't know if that has anything to do with it

Yes -- IDE relies on very fast access to project files and you may experience random temp freezes seemingly out of nowhere (depends on your network latency etc) when working over network (sometimes even via slow local VM)

Is there a fix for this?

Copy your project to local disk and try from there -- it should improve your experience.

P.S.
It also may depend on type of files (based on feedback JS parsing is slower than PHP), file size and file structure (lots of language injection fragments will slow processing down).

P.P.S.
Not a Mac user .. but in those few cases when I've tried working over LAN (1GB connection) on Windows I saw the difference (not big, but still a noticeable difference). Therefore it's possible that on another OS the difference can be more noticeable.

Other than that: https://devnet.jetbrains.com/docs/DOC-1253

0
Comment actions Permalink

Wow, putting the files on the local disk seems to have sorted the issue out.

I have yet to test the situation properly, but for now, the same repo, but local, is working.

However, this behaviour perhaps exposes problems with this feature of PHPStorm. If it can't index a networked location properly, or the performance falls below a certain threhsold, it should really be disabled.

And as for the continuous restarting of the indexing, that surely is undesirable behaviour, and perhaps indicates an issue with something behind the scenes? I wouldn't mind waiting for a 10-minute index if I knew it was only going to happen once. But for WS to re-index almost immediately after it's finished doing the last run, is crippling.

Hopefully someone from JB will chime in here.

Cheers for the reply,
Dave

0
Comment actions Permalink
However, this behaviour perhaps exposes problems with this feature of PHPStorm. If it can't index a networked location properly, or the performance falls below a certain threhsold, it should really be disabled.

What exactly should be disabled? Indexing or network access?

  • Indexing: I do not think that's possible -- do you know what indexing files means for this IDE? Refactoring, Code Completion ...
  • Working with projects directly over network: for most (?) people it seems work OK (slow but definitely not constant re-indexing) -- see "in any case" below.

And as for the continuous restarting of the indexing, that surely is undesirable behaviour, and perhaps indicates an issue with something behind the scenes? I wouldn't mind waiting for a 10-minute index if I knew it was only going to happen once. But for WS to re-index almost immediately after it's finished doing the last run, is crippling.

I suggest checking idea.log (Help | Show Log in...) for possible hints/explanations.

But yes -- constant re-indexing is not what is supposed to be happening, even if working over network. My only guess that file system watcher detects some changes (e.g. due to not properly configured network/mount , e.g. returning not precise file modification timestamp) and requests re-indexing. Killing file system watcher (or better say, deleting it before launching app) may possibly  help (on Windows it's easy: fsnotifier.exe -- no clue about Mac)

In any case: working with local files and then using automatic deployment for uploading them to remote location is the officially recommended way -- working via network share/drive is not recommended (not guaranteed to work well) due to the reasons explained earlier (really fast access to project files is required while it's usually not the case over LAN).

0
Comment actions Permalink

You raise some valid points, but I don't think accessing files over a network is particularly unusual (as you agree). People do it every day, perhaps just wanting to check something, or actually working with those files, say for example if you have files on one computer on your network at home (as I do - as I sometimes work on Mac, sometimes PC) and you want to work on them.

As for disabling features, not an outright disabling of features, but if the way PHPStorm is configured to work, working over the network is this much of a disaster (and I use that word intentionally) then some kind of network detection, or slow-indexing detection, or misconfigured time (as you suggest) then an option to cancel indexing would be good.

As for the repeated indexing, unfortunately, I don't know enough about networks to investigate mine with regards to your suggestion. As it happens, no files were changed, The indexing starts as soon as the project is open, then goes into this endless loop.

I certainly can't believe I'm the first person to have highlighted this - however, I will likely raise a bug in the next short while.

I also don't know how much this has to do with Java versions on the Mac. Frankly, since I got this Mac a few days ago (brand new) I have seen far more of that f*ing Beachball of Death than I ever expected. A very disappointing start to my switchover to Apple!

Thanks for your input Andriy, I guess we got somewhere, but I think I've highlighted some shortcomings with the indexing.

0

Please sign in to leave a comment.